首页 > 编程 > JavaScript > 正文

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

2019-11-19 15:25:46
字体:
来源:转载
供稿:网友

作用域链:

//作用域链  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());//弹出sunvar 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闭包的几种常见形式 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表