Code Is Never Die !
闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
function createFunction(){
var result = new Array();
for(var i=0; i<10; i++){
result[i] = function(){
return i;
}
}
console.log('i 的值:'+ i)
return result;
}
调用函数:
createFunction()
createFunction()[1/2/3/...]() //代表调用第一个或第二个或第三个,结果都一样
若希望得到预期结果,需要修改原函数:
function createFunction(){
var result = new Array();
for(var i=0; i<10; i++){
result[i] = (function(num){
return i;
})(i)
}
console.log('i 的值:'+ i)
return result;
}
改为立即执行函数,这样每次都会自动执行,所以result=[0,1,2,3,4,5,6,7,8,9]