2
每次都会发出以下警报。
function timer() {
for (var i = 0; i < 3; ++i) {
var j = i;
setTimeout(function () {
alert(j);
}, 1000);
}
}
timer();
不应该var j = i;
将其设置j
为 setTimeout 的单个范围吗?
而如果我这样做:
function timer() {
for (var i = 0; i < 3; ++i) {
(function (j) {
setTimeout(function () {
alert(j);
}, 1000);
})(i);
}
}
timer();
它会提醒0
, 1
,2
就像它应该的那样。
有什么我想念的吗?