1. 闭包是什么?closure

内层函数可以访问外层函数的变量。外层函数的局部变量得到暂存。

专业说法:当一个内部函数引用其外部函数的变量时,就形成了一个闭包。

闭包就是一个具有封闭功能与包裹功能的结构,是为了实现具有私有访问空间的函数的,函数可以构成闭包,因为函数内部定义的数据函数外部无法访问,即函数具有封闭性;函数可以封装代码即具有包裹性,所以函数可以构成闭包。

1.1. 闭包有三个特性:

  • 函数嵌套函数
  • 函数内部可以引用外部的参数和变量
  • 参数和变量不会被垃圾回收机制回收

1.2. 闭包有什么用,使用场景

当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中但又不会“污染”全局的变量时,就可以用闭包来定义这个模块。

1.3. 闭包的缺点

闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

1.4. 函数套函数就是闭包吗?

不是!当一个内部函数被其外部函数之外的变量引用时,才会形成了一个闭包。

Copyright © Guanghui Wang all right reserved,powered by GitbookFile Modified: 2019-08-25 13:56:34

results matching ""

    No results matching ""