JavaScript闭包案例

来源:互联网 发布:unreal 源码分析 编辑:程序博客网 时间:2024/06/14 07:15

1、闭包生成数组元素

<script type="text/javascript">    //创建数组元素    var arr = new Array();    for(var i = 0; i < 4; i++){        arr[i] = f1(i);    }    function f1(n) {        function f2() {            console.log(n);        }        return f2;    }    arr[2]();    arr[0]();    arr[3]();    arr[1]();</script>
效果图:


2、闭包事件的操作

<script type="text/javascript">    window.onload = function () {        var colors = document.getElementsByTagName('li');        for(var i = 0; i < 3; i++){            colors[i].onmouseover = over(i);            colors[i].onmouseout = out(i);        }        //闭包机制        function over(n) {            function f2() {                colors[n].style.backgroundColor = "pink";            }            return f2;        }        function out(n) {            function f2() {                colors[n].style.backgroundColor = "";            }            return f2;        }    }</script>
效果图:


原创粉丝点击