闭包

82 阅读1分钟

是什么

如下例子所示

function test() { 
    var age = 18 
    function addAge(){ 
        age++; 
        alert(age) 
     } 
    return addAge 
}

闭包有三个特性:

  1. 函数嵌套函数。
  2. 内部函数使用外部函数的参数和变量;
  3. 参数和变量不会被垃圾回收机制回收。

闭包的优点:

  1. 延长一个 变量的生命周期;
  2. 避免全局变量污染,创建一个私有的环境。
  3. 闭包的缺点: 常驻内存,增加内存使用量;
  4. 使用不当造成内存泄漏。