千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

闭包
闭包是函数的一种高级使用方式
闭包本质上就是利用了函数的执行空间不销毁的特性、
实现在函数外部访问函数内部的私有变量
可以实现在一个函数中 使用 另外一个函数中 的 私有变量
闭包的优点
1. 能够让函数外部访问到函数内部的私有变量
2. 能够保护函数的私有变量,不会污染全局=
3. 可以利用闭包的特性,缓存数据,提升代码性能
闭包的缺点
因为对数据的持续引用,导致函数的执行空间不销毁,容易造成内存泄露
解决闭包造成内存泄露的问题
在使用完成之后,手动的给变量赋值为null,这样内存就会释放了
闭包概念
例如有一个 A 函数,在A 函数内部返回一个 B 函数
在 A 函数外部有变量 C 引用这个 B 函数
B 函数内部访问着 A 函数内部的私有变量
以上三个条件缺一不可
闭包应用在哪个业务中
在一个业务中如果需要操作 缓存数据的时候,用到了闭包实现
同时
节流、防抖、柯里化的函数 封装中 会使用闭包