我试图弄清楚为什么此for循环不像预期的那样呈现0、1、2、3。
它呈现4, 4 , 4, 4
。
在setTimeout仍然存在的情况下,如何打印0, 1, 2, 3
?
for (var i = 0; i < 4; i++) {
setTimeout(function() {
console.log('The index of this number is: ' + i);
}, 3000);
}
答案 0 :(得分:1)
创建另一个,并在每次迭代时调用
function a(i)
{
setTimeout(function() {
console.log('The index of this number is: ' + i);
}, 3000);
}
for (var i = 0; i < 4; i++) {
a(i);
}