闭包

195 阅读1分钟

什么是闭包?

闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。

闭包的特性

  1. 函数内再嵌套函数
  2. 内部函数可以引用外层的参数和变量
  3. 参数和变量不会被垃圾回收机制回收

闭包的作用

闭包用的多的两个作用:

  • 读取函数内部的变量值;
  • 让这些变量值始终保存着(在内存中)。 同时需要注意的是:闭包慎用,不滥用,不乱用,由于函数内部的变量都被保存在内存中,会导致内存消耗大。

闭包的优点

  • 不声明全局变量
  • 能进行累加
  • 希望一个变量常驻在内存当中,避免全局变量污染
  • 可以声明私有成员

闭包的缺点

滥用闭包函数会造成内存泄露,因为闭包中引用到的包裹函数中定义的变量都永远不会被释放,所以我们应该在必要的时候,及时释放这个闭包函数。