我遇到了一些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