我想设置五个交错的函数调用(发生一秒之差)。这部分工作正常。不起作用的是,我无法将值0到4传递到回调函数中。它每次只传递'5'。我似乎无法弄清楚为什么以及如何解决它。如何将变量传递给setTimeout函数?
代码:
function callback(num)
{
console.log(num);
}
for (var i = 0, loadDelay = 1000; i < 5; ++ i, loadDelay += 1000)
setTimeout(function() { callback(i); }, loadDelay);
结果:
5
5
5
5
5
期望的结果:
0
1
2
3
4
增量回调的价值。由于setTimeout是异步的,这就是为什么你总是5. – malletjo 2012-04-18 20:37:11