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