JS闭包的几种常见形式实例详解
作用域链:
//作用域链
vara=1;
functiontest(){
varb=2;
returna;
}
alert(test());//弹出1;
alert(b);//不能获取b
//scopechain
vara=1;
functiontest(){
varb=2;
functiontest1(){
varc=3;
alert(a);
alert(b);
alert(c);
}
test1();
}
test();//弹出1,弹出2,弹出3;
词法作用域:
//词法作用域;
functionf1(){
vara=12;
returnf2();
}
functionf2(){
returna;
}
alert(f1());//并不能获取a,a在f2()中并未定义;
functionf1(){
vara=1;
returnf2();
}
functionf2(){
varb=3;
alert(b);
returna;
}
alert(f1());//弹出3,a在f2()中未定义
functionf1(){
vara=1;
returnf2();
}
functionf2(){
varb=3;
alert(b);
returna;
}
alert(f1());//弹出3,a在f2()中未定义,undefined
vara=55;
alert(f1());//弹出3,弹出55
如何通过闭包突破全局作用域链——几种常见形式
//通过闭包突破全局作用域链
functionf(){
vara="sun";
returnfunction(){
returna;
}
}
vartest=f();
alert(test());//弹出sun
varn;
functionf(){
vara="sun";
n=function(){
returna;
}
}
f();
alert(n());//弹出sun
functionf(param){
varn=function(){
returnparam;
};
param++;
returnn;
}
vartest=f(45);
alert(test());//弹出46;
总结
以上所述是小编给大家介绍的JS闭包的几种常见形式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短