最近在读阮一峰老师的ES标准入门,读到第一章的时候提到了一段代码var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); };}a[6](); // 10如果想要输出6,用let就可以解决这个问题,但是如果用ES5的方法呢?IIFE可以做到,不过是立即打印出来。
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
var a = [];
for(var i = 0; i < 10; i++) {
+function(i){
a[i] = function() {
console.log(i);
}
}(i);
};
a[6](); // 6
闭包问题
添加回答
举报
0/150
提交
取消