1
var count = 0;
for (var i = 0; i < 4; i++) {
setTimeout(function(){
assert(i == count++, "Check the value of i.");
}, i * 200);
}
为什么不工作(i
等于4而不是等于每次计数)? count, var
是在全局范围内创建的,为什么它们在函数内部不可用?全局变量不能在匿名函数内工作
(我想解释,为什么这是不行的,我发现了一种方式来获得可以通过另一个函数进行包装工作,只是想了解)
工作方式与预期一样 - > [** FIDDLE **](http://jsfiddle.net/jrP7Z/),但是'i'的值会发生变化,就像您期望的那样。 – adeneo 2013-03-21 20:58:00