闭包

闭包:就是可以读取到其他函数内部的变量的函数。

(有权访问另一个函数作用域中的变量的含数)(就是拿到本该不属于他的东西);

闭包其实就是携带状态的函数,并且它的状态可以完全对外隐藏。

 

自己理解:程序的代码段允许存在一级函数并且一级函数不能被释放,一级函数没有释放之前,外部可以使用一级函数的局部变量。
进一步理解 : 闭包就是外部可以使用局部变量。

 

 

作用:

  闭包可以用在许多地方,他的最大用处有两个:

  1.可以读取函数内部的变量;

  2.让这些变量的值始终保存在内存中;

 

闭包的功能:

  1、外部可以使用局部变量。
  2、使函数不能释放。

 

缺点:

  1.外部会修改局部变量

  2.会大量占用内存

  3.内存不会被释放

 

闭包有个需要注意的问题:

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。

 

小练习:

    闭包返回局部变量以及使用局部变量实现数值的累加

function create_c(){
          var x=0;
          return function(){
             x++;
              alert(x);
          }
}
    var c1=create_c();
        c1();      //1
        c1();     //2

 

posted @ 2017-06-25 20:32  心肺  阅读(132)  评论(0编辑  收藏  举报