function createFunctions() {
var result = new Array(); for (var i=0; i<10; i++) {
result[i] = function(num) {
return function() {
return num;
}
}(i);
}
return result;
}var funcs = createFunctions();for(var i=0; i<funcs.length; i++)
document.write(funcs[i]() + "<br />");为什么书上说“由于函数参数是按值传递的,所以就会将变量i的当前值复制给参数num”?
但是这个函数哪里有提示num是i的形参?
result[i] = function(num) {
return function() {
return num;
}
}(i); //这里的i传递给外层函数function(num)立即执行,返回内层函数
return function() {
return num;
}
}(i);
function(num) {
return num;
}(i);
所以是0-9