咸宁兄弟连IT培训学校

173-6295-3551

闭包

编辑:咸宁兄弟连IT培训学校时间:2019-08-16

这是一个经典的JavaScript面试题:

const Greeters = []

for (var i = 0 ; i < 10 ; i++) {

Greeters.push(function () { return console.log(i) })

}

Greeters[0]() // 10

Greeters[1]() // 10

Greeters[2]() // 10

虽然期望输出0,1,2,…,然而实际上却不会。知道如何Debug嘛?

有两种方法:

使用let而不是var。

使用bind函数。

当然,还有很多解法。这两种是我最喜欢的!


上一篇:数组不是基础类型

下一篇:关于bind

联系方式

选择专业时,如果犹豫不定,不知道选择哪个比较好,敬请致电,专业的咨询老师会为你解答。

  • 报名热线:173-6295-3551
  • 咨询老师:刘老师
  • 点击咨询:

友情连接:

关于我们|联系我们|网站地图

QQ咨询
在线咨询
在线报名
173-6295-3551
返回顶部