var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
}
document.write(arr[1]());
输出为5,如我预期变种,循环在javascript,无法理解的输出,错误
但是当我加入回报之间我+ + I;和的for循环结束时,如下面的代码,
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
i++;
}
document.write(arr[1]());
屏幕显示错误, 未捕获的类型错误:常用3 [1]不是函数
我期望输出应为6,但我无法理解为什么。
因为第一个循环'i'将会是'2'。我建议使用一些调试工具来查看你的变量,或者在你的代码中加入一些'console.log()'来理解下一次发生的事情。 – George
由于您将索引增加2,array [0],array [2],array [4] ... – dloeda
您是否还期望'arr'中的所有函数都输出相同的值?那将会发生。 – evolutionxbox