JS-闭包

121 阅读1分钟

1.什么是闭包:

- 一个函数和对其周围状态的引用捆绑在一起(或者说函数被外部引用包围),这样的组合就叫闭包
- 通俗来讲,能够读取其他函数内部变量的函数就是闭包
- 通过 Chrome 开发者工具调试查看,闭包是一个引用外部函数局部变量的 Scope 对象, 存在内部函数中

2.什么是内部函数:

一般来说在一个函数内部定义另外一个函数,这样的函数就是内部函数

3.产生的原因

- 函数嵌套
- 内部函数引用外部函数局部变量
- 调用外部函数

4.闭包的作用

(1)让函数外部操作函数内部的数据
(2)延长局部变量生命周期

5.缺点

- 容易导致内存泄漏
- 解决:将保存闭包内部函数的变量置为 null,让内部函数成为垃圾对象,就会被垃圾回收机制回收

6.生命周期

- 产生:调用外部函数(当内部函数定义执行完)
- 死亡:当内部函数成为垃圾对象

7.应用

- React 高阶函数:为了给函数传递额外参数