闭包
1.1 闭包的作用之一 ———— 保存
用选项卡的 🌰 tab选项卡切换
for (var i = 0; i < tabList.length; i++) {
//方法一 闭包解决:
/* tabList[i].onclick = (function(n){
return function(){
changeTab(n)
}
})(i) */
//方法二 闭包解决:
/* (function(n){
tabList[n].onclick = function(){
changeTab(n)
}
})(i) */
//方法三:自定义属性
tabList[i].index = i;
tabList[i].onclick = function () {
changeTab(this.index);
};
}
//方法四:es6方式
for (var i = 0; i < tabList.length; i++) {
tabList[i].onclick = function(){
changeTab(i)
}
}
1.2 闭包的作用之 -保护
- 保护私有作用域中的私有变量不受外界的干扰
let x =5;
function fn(x){
return function(y){
console.log(y+(++x));
}
}
let f = fn(6);//
f(7);//7+1+6 = 14
fn(8)(9);//8+9+1 = 18
f(10);//10+1+7 = 18
console.log(x);//5