function test(){ var arr=[]; for(var i=0;i<10;i++){ (function(j){ arr[j]=function(){ console.log(j) } })(i) } return arr; } var myArr=test(); for(var j=0;j<myArr.length;j++){ myArr[j](); }
只要里面的函数被保存到外面就涉及到闭包问题
function test(){ var arr=[]; for(var i=0;i<10;i++){ (function(j){ arr[j]=function(){ console.log(j) } })(i) } return arr; } var myArr=test(); for(var j=0;j<myArr.length;j++){ myArr[j](); }
只要里面的函数被保存到外面就涉及到闭包问题