什么是闭包:
就是内层函数访问外层函数的作用域 闭包的原理就是利用作用域链的特性,首先在当前作用域访问数据,当前作用域访问不到,则向父级访问,父级也没有,一直找到全局。
作用:
- 变量私有化 ,防止数据被污染 ;
- 不会被垃圾回收;
- 外部函数可以访问函数内部的变量
存在问题是:内存泄漏问题: 就是不在用到的内存,没有及时被释放
解决::闭包用完 赋值为null
使用场景:
- 循环里面的异步代码打印索引值会有bug,用闭包可以解决(不用说)
- 防抖和节流
- 柯里化
- 柯里化是用来把一个函数从多参函数转换成单参函数,好处就是可以实现参数复用