var fns = [];
for (var i = 0; i < 5; i += 1) {
fns.push(function() {
console.log(i);
})
}
fns.forEach(fn => fn());
这段代码执行完后会打印出5个5。
用let代替var,即可定义块级作用域中可见的变量:
var fns = [];
for (let i = 0; i < 5; i += 1) {
fns.push(function() {
console.log(i);
})
}
fns.forEach(fn => fn());
结果是0 1 2 3 4