【JS深入学习】—— 一句话解释闭包

闭包的定义:

  闭包(closuer)是一个受到保护的变量空间,由内嵌函数构成。就是说闭包内的变量不能被外部函数访问,为什么会这样?

函数的作用域:

  JS具有函数级的作用域,这表明外部函数不能访问内部函数的变量;JS的作用域是词法性质的,这意味着函数运行在定义它的作用域中,而不是调用它的作用域。(这与 this 的用法有很大的不同)这两个因素使得包裹在匿名函数中的变量变得安全,进而创建类的私有变量。

var baz;
(function(){
  var foo = 10;
  var bar = 2;
  baz = function(){
    return foo * bar;
  }
})();
baz();

创建闭包:

  返回一个内嵌函数是创建闭包最常用的方式。 

 

posted @ 2017-01-17 19:47  Liaofy  阅读(753)  评论(0编辑  收藏  举报