1.什么是闭包:
- 一个函数和对其周围状态的引用捆绑在一起(或者说函数被外部引用包围),这样的组合就叫闭包
- 通俗来讲,能够读取其他函数内部变量的函数就是闭包
- 通过 Chrome 开发者工具调试查看,闭包是一个引用外部函数局部变量的 Scope 对象, 存在内部函数中
2.什么是内部函数:
一般来说在一个函数内部定义另外一个函数,这样的函数就是内部函数
3.产生的原因
- 函数嵌套
- 内部函数引用外部函数局部变量
- 调用外部函数
4.闭包的作用
(1)让函数外部操作函数内部的数据
(2)延长局部变量生命周期
5.缺点
- 容易导致内存泄漏
- 解决:将保存闭包内部函数的变量置为 null,让内部函数成为垃圾对象,就会被垃圾回收机制回收
6.生命周期
- 产生:调用外部函数(当内部函数定义执行完)
- 死亡:当内部函数成为垃圾对象
7.应用
- React 高阶函数:为了给函数传递额外参数