Js匿名闭包

mac2022-06-30  16

看到一个js教程,以前没琢磨

    function box() {            var arr=[];            for (var i = 0; i < 5; i++) {                arr[i] = function () {                    return i;                }            }            i = 10;            return arr;        }        var b = box();        for (var i = 0; i < 5; i++) {            alert(b[i]())// 5个 10         }

与下面的区别

  function box() {            var arr=[];            for (var i = 0; i < 5; i++) {

 

//直接让匿名方法执行返回值 参数直接使用外部的

arr[i] = (function () {                    return i;                })();

      //或者这样

/*

//直接让匿名方法执行返回值 定义参数接收外部的

arr[i] = (function (num) {                    return num;                })(i)

//或者

//直接让匿名方法里面在 写一个闭包 返回  那么参数是驻留在内存的   参数直接使用外部的

  arr[i] = function (a) {                    return function () {                        return a;                    }                }(i);

*/            }            i = 10;            return arr;        }        var b = box();        for (var i = 0; i < 5; i++) {            alert(b[i]) // 0 到 4        }

转载于:https://www.cnblogs.com/WindWall/p/5203749.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)