最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS闭包的几种常见形式实例详解

来源:动视网 责编:小采 时间:2020-11-27 22:29:59
文档

JS闭包的几种常见形式实例详解

JS闭包的几种常见形式实例详解:作用域链: //作用域链 var a = 1; function test() { var b =2; return a; } alert(test());//弹出1; alert(b);//不能获取b //scope chain var a = 1; function test() { var b = 2; function test1(
推荐度:
导读JS闭包的几种常见形式实例详解:作用域链: //作用域链 var a = 1; function test() { var b =2; return a; } alert(test());//弹出1; alert(b);//不能获取b //scope chain var a = 1; function test() { var b = 2; function test1(


作用域链:

//作用域链
 var a = 1;
 function test() {
 var b =2;
 return a;
 }
 alert(test());//弹出1;
 alert(b);//不能获取b
//scope chain
 var a = 1;
 function test() {
 var b = 2;
 function test1() {
 var c = 3;
 alert(a);
 alert(b);
 alert(c);
 }
 test1();
 }
 test();//弹出1,弹出2,弹出3;

词法作用域:

//词法作用域;
 function f1() {
 var a = 12;
 return f2();
 }
 function f2() {
 return a;
 }
 alert(f1());//并不能获取a,a在f2()中并未定义;
function f1() {
 var a = 1;
 return f2();
 }
 function f2() {
 var b = 3;
 alert(b);
 return a;
 }
 alert(f1());//弹出3,a在f2()中未定义

function f1() {
 var a = 1;
 return f2();
 }
 function f2() {
 var b = 3;
 alert(b);
 return a;
 }
 alert(f1());//弹出3,a在f2()中未定义,undefined
 var a=55;
 alert(f1());//弹出3,弹出55

如何通过闭包突破全局作用域链——几种常见形式

//通过闭包突破全局作用域链
 function f() {
 var a = "sun";
 return function () {
 return a;
 }
 }
 var test = f();
 alert(test());//弹出sun
var n;
function f() {
 var a = "sun";
 n = function () {
 return a;
 }
}
f();
alert(n());//弹出sun
 function f(param) {
 var n =function () {
 return param;
 };
 param++;
 return n;
 }
 var test = f(45);
 alert(test());//弹出46;

总结

以上所述是小编给大家介绍的JS闭包的几种常见形式 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

文档

JS闭包的几种常见形式实例详解

JS闭包的几种常见形式实例详解:作用域链: //作用域链 var a = 1; function test() { var b =2; return a; } alert(test());//弹出1; alert(b);//不能获取b //scope chain var a = 1; function test() { var b = 2; function test1(
推荐度:
标签: js 例子 形式
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top