前端大讲堂让前端飞

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

2019-04-17  本文已影响12人  前端大课堂

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

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 现在的解法 

上一篇 下一篇

猜你喜欢

热点阅读