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

这个3哪里出现的

怎么说了个闭包就是3了,没明白啊

正在回答

4 回答


const callbacks = []
for (var i = 0; i <= 2; i++) {
    callbacks[i] = function() {
        return i * 2
    }
}

console.log(i)  //此时i=3




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

还是不懂


0 回复 有任何疑惑可以回复我~
#1

sier

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143449934543461c9d5dfeeb848f5b72bd012e1113d15000 看看这个链接里的文字也许可以帮到你
2018-10-29 回复 有任何疑惑可以回复我~
#2

sier 回复 sier

返回函数不要引用任何循环变量,或者后续会发生变化的变量。
2018-10-29 回复 有任何疑惑可以回复我~

for循环执行完毕,i=3,调用callback的时候 i=3

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

for循环里面的i走完for循环之后 i = 3

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

举报

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

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

进入课程

这个3哪里出现的

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