您现在的位置是:首页 > 慢生活
前端面试——闭包2
- 慢生活
- 2019-02-21
- 人已阅读
简介2个简单例子转换成闭包函数
例子1
非闭包:
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:付博瀚
来源:付博瀚个人博客
链接: https://www.fubohan.com/
非闭包:
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
闭包:
var a = []; function b(i) { var b = function (e) { console.log(i); }; return b; } for (var i = 0; i < 10; i++) { a[i] = b(i) } a[6](); // 6 例子2 非闭包:
var clickBoxs = document.querySelectorAll('.clickBox')
for (var i = 0; i < clickBoxs.length; i++){
clickBoxs[i].onclick = function(){
console.log(i)
}
}
闭包:
function iteratorFactory(i){
var onclick = function(e){
console.log(i)
}
return onclick;
}
var clickBoxs = document.querySelectorAll('.clickBox')
for (var i = 0; i < clickBoxs.length; i++){
clickBoxs[i].onclick = iteratorFactory(i)
}
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:付博瀚
来源:付博瀚个人博客
链接: https://www.fubohan.com/
下一篇:前端面试——水平垂直居中