理解
函数内部可以访问其外函数中的作用域
作用
- 创建私有变量
- 延长变量的声明周期
- 一般函数中的变量在函数返回之后就会被销毁,但是闭包会保存使用的变量,即便是上下文被摧毁了,使用的变量依旧存在
闭包的用途
- 柯里化函数的目的就是在避免重复的调用变量
- 案例
- 求一个长方形的面积,width 为10 ,高度是动态的
function fn(width){reutrn height =>{return width*height}
}
- 使用
const fn2 = fn(10) //传入一个不变得宽度
之后再去求别的高度得面积就不需要传入宽度,这就是闭包延长变量生命周期得一个特性
const num = fn2(20) //求width10 height20的一个长方形的面积
注意
- 闭包如果不是特定的一些任务需要使用到,频繁的使用闭包会导致处理速度和内存消耗方面对脚本产生负面影响