1
這個問題似乎超級原始,但我無法弄清楚。如何在for循環中使用索引變量創建函數?
我有這樣的代碼。我期望的結果是三個警報「0」,「1」和「2」。但是,這不是發生了什麼 - 我得到三個2。
for(var i=0; i<3; i++) {
var j=i;
setTimeout(function() {
alert(j);
},1000);
}
該代碼在http://jsfiddle.net/8UMCA/。
如何「修復」代碼,以便提醒「0」 - 「1」 - 「2」?
你需要創建一個封閉:http://stackoverflow.com/questions/111102/how-do-javascript-closures-work – rgthree