-
闭包
-
概念:内部函数访问其外部函数作用域(函数嵌套函数)
-
作用:实现变量的私有化
-
使用场景:
- 循环里面的异步代码打印索引值会有bug,用闭包可以解决(不用说)
- 防抖和节流
- 柯里化(把一个函数从多参函数转换成单参函数,好处就是可以实现参数复用)
-
缺点: 会导致内存泄露
-
解决办法:闭包用完赋值为null
-
-
造成内存泄露的原因
- 闭包 ` 全局变量
-
垃圾回收机制
-
引用计数法:一个值被变量用了+1,如果引用次数为0就可以被当作垃圾回收掉 缺点:如果是相互引用(嵌套引用)不能被回收
-
标记清除法: 从根出发,如果从根部能访问到某个变量,就说明这个变量有用的,具备可达性,如果变量访问不到的,就被标记成一个垃圾,然后就会回收掉
-