我遇到了一些 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
我可以理解为什么这不起作用,但我想知道是否有人可以向我解释发生了什么以及为什么它不起作用!
另外,如何克服这个范围问题?