function createFunctions() {
var result = new Array();
for(var i =0; i<10; i++){
result[i] = function(){
return i;
};
}
return result;
}
alert(createFunctions());
alert(result[1]());
alert(createFunctions()[1]());
function createFunctions() {
var result = new Array();
for(var i =0; i<10; i++){
result[i] = function(num){
return function(){
return num;
};
}(i);
}
return result;
}
alert(createFunctions());
alert(createFunctions()[]);
问题1:这两个函数应该如何调用,为什么我都调用不对。。。。函数1应该看到10; 函数2应该看到0,1,2......9
问题2:为什么函数2立即调用就能产生0-9的输出结果。
函数一,你输出createFunctions()[1]()都会得到10吧,无论中括号内多少,都得到10,没用闭包,变量不会保存
函数二调用方式同上,不过中括号里输几,拿到当前数字,内存没有销毁这个变量