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

佩服老师的口才

  1. 你的理解是错的,这个跟闭包没关系,闭包只是能访问外部函数的变量i而已。

  2. 首先要理解该问题要明白js是从上至下执行的;

  3. 在代码从上至下执行到for循环的时候执行了3次,每次i加一,但是循环体内只是把数组callbacks[i]赋值了一个函数(function),但是该函数并没有执行,此时如果出入callbacks[i]得到的都是function的字符串;所以此时并没有执行function里面的console.log输出i的值。

  4. 在代码的最后一句console.table()中写的是:callbacks[0](),这句代码的意思就是执行了callbacks[0]指向的function,这时候才会执行function的内容而不是返回字符串;


    https://img1.sycdn.imooc.com//5d60e8de00015a0025601378.jpg



正在回答

1 回答


贴上我写的代码,const定义了callbacks数组的引用不可变,因此跟var是一样的不影响结果

https://img1.sycdn.imooc.com//5d60e91f000152b715621316.jpg

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
ES6快速入门
  • 参与学习       64234    人
  • 解答问题       137    个

用最通俗、形象的方法描述ES6的强大并教会你正确的学习方法。

进入课程

佩服老师的口才

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信