简单的问题...
for (var i = 0; i < 5; i++) {
setTimeout(function () { alert(i) }, 3000);
}
如何以i的确切值发出5次警报。
它仅给出5次“ 5”。
我需要它的结果,如0 1 2 3 4
使用闭包将变量的值保持在立即调用的函数的新范围内
for (var i = 0; i < 5; i++) {
(function(j) {
setTimeout(function () { alert(j) }, 3000);
}(i));
}
setTimout是异步的,因此在执行循环之前,它已经完成很长时间了,并且的值i
已更改为5
,因此您需要将其锁定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句