我遇到了一些JavaScript代碼的問題。JavaScript可變範圍
腳本
setTimeout(function() {
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, i * 200);
}
}, 200);
輸出
5,5,5,5,5,而不是1,2,3,4,5
我種理解爲什麼這不起作用,但我想知道是否有人能向我解釋發生了什麼,以及爲什麼它不起作用!
此外,如何克服這個範圍問題?
感謝您的回覆並回答了其他問題!它完美地解釋了它! – 2009-10-18 13:10:50
@Bisbo:不客氣,很高興幫助! – CMS 2009-10-20 06:42:37
@bdukes:回滾編輯,'i'的最後一個值是'4',注意for循環中的'i <5'條件。 – CMS 2009-10-20 06:44:08