考虑这个简单的例子:
var count = 0;
for (var i = 0; i < 4; i++ ) {
setTimeout(function() {
console.log(i, count++);
}, i * 200);
}
Run Code Online (Sandbox Code Playgroud)
输出以下内容
4 0
4 1
4 2
4 3
Run Code Online (Sandbox Code Playgroud)
我猜这i总是解析为4,因为setTimeout回调关闭了变量I,但我无法弄清楚为什么同样不适用于count?
var count = 0;
for (var i = 0; i < 4; i++ ) {
setTimeout(function() {
console.log(i, count++);
}, i * 2000 );
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |