闭包

function a(){

  var n = 0;

  this.fun = function () {

    n++; 

    console.log(n);

  };

}

var c = new a();

c.fun();  //1

c.fun();  //2

  

闭包就是能够读取其他函数内部变量的函数。在 js 中只有函数内部的子函数才能读取局部变量。所以可以简单的理解为:定义在内部函数的函数。

用途主要有两个:

1)前面提到的,读取函数内部的变量。

2)让变量值始终保持在内存中。

使用闭包 主要是为了设计私有的变量和方法,可以避免全局变量污染,缺点是闭包会常驻内存,增大内存使用量,使用不当会造成内存泄漏
posted @ 2018-09-13 19:55  Samsara315  阅读(135)  评论(0)    收藏  举报