一个关于闭包很小的面试题

[广告:最高 ¥2000 红包]阿里云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取

关于闭包一个很小的面试题。

01 背景

在很久以前,面试中问起闭包应用场景的是,如果页面上有 N 个按钮要绑定点击事件,点击后弹出 0, 1, 2, 3 …

用一个 for 循环来绑定,那么这样子

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

btns[i].onclick = function() {

alert(i);

}

}

可以吗? 当然不行,要用闭包。

下面三个例子说明,大家自己运行下就好了。

02 没有闭包的情况

结果是 4, 4, 4, 4

03 加上闭包解决问题

结果是 0, 1, 2, 3

04 现在的解法

码中人 微信公众号