这是例一,按照书中说的函数返回的值应该是[10,10,10,10,10,10,10,10,10,10],可是返回的确是函数体本身
function createFunctions(){
var result = new Array();
for (var i=0; i < 10; i++){
result[i] = function(){
return i;
};
}
return result;
}
例二也是,返回的不是下标本身而是函数体
function createFunctions(){
var result = new Array();
for (var i=0; i < 10; i++){
result[i] = function(num){
return function(){
return num;
};
}(i);
}
return result;
}
我将例一改成下面这样到是可以返回数字,但返回的是下标而不是10。
function createFunctions(){
var result = new Array();
for (var i=0; i < 10; i++){
result[i] = (function(){
return i;
})();
}
return result;
}
请问是为什么?
你再读读,我第一次的时候也读错了;