闭包的作用和优缺点
- 例子
function fun() {
var num = 0;
return function() {
num++
// console.log(num)
return num
}
}
var result = fun()
var num1 = result() // 1
var num2 = result() // 2
以当前例子来看闭包的作用和优缺点
作用
- 1、可以打通不同作用域之间的连接 然外部作用域可以访问到内部的变量或者方法
- 2、 闭包的变量一直处于引用的状态 所以变量不会销毁
- 3、 避免使用全局变量导致的全局变量污染
- 4、 比局部变量使用起来更灵活
缺点
- 因为闭包不会销毁变量 所以会造成内存泄漏 也就是说当闭包的变量过多时会导致内存占用过大从而导致运行速度变慢
如何解决闭包造成的内存泄漏
- 在闭包使用结束后手动清除或者置空变量或者方法