如何使此 javascript 警报为 0、1 和 2 而不是 3 3?
var vals = [1, 2, 3];
for(var i = 0; i < vals.length; i++)
{
window.setTimeout(function() {alert(i);}, 1000);
}
我知道它这样做的原因,但我不知道如何将 i
传递给匿名函数。
最佳答案
你可以像这样把它包装在一个闭包中:
var vals = [1, 2, 3];
for(var i = 0; i < vals.length; i++) {
(function(num) {
window.setTimeout(function() {alert(vals[num]);}, 1000);
})(i);
}
关于javascript - 如何使用局部参数创建匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166190/