为了账号安全,请及时绑定邮箱和手机立即绑定

ES6标准入门中let命令提到的for循环打印i是10,如果不用let怎么替换?

ES6标准入门中let命令提到的for循环打印i是10,如果不用let怎么替换?

缥缈止盈 2018-12-13 18:19:40
最近在读阮一峰老师的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

闭包问题

查看完整回答
反对 回复 2019-01-10
  • 1 回答
  • 0 关注
  • 443 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信