闭包:是由于作用域嵌套,让全局变量和局部的引用类型数据保持了引用关系,导致执行空间不销毁的场景。
好处:
1、全局可以间接的操作到局部变量
2、保护了变量的私有性,不污染全局了
3、延长了变量的生命周期
坏处:外面函数每调用一次,就会在调用栈保留一个执行空间,调用多了话,可能会造成内存溢出/内存泄漏
闭包的作用:
1、循环中使用异步或事件
2、防抖:在有些事件触发特别频繁的时候,但我们只用其中最后一次的时候,使用防抖
封装防抖函数:
3、节流:事件在频繁触发时,不是每次触发都会执行函数,让函数有节制的执行。也就是让函数在一个时间段内虽然触发了多次,但是函数只执行了一次。
4、函数柯里化:如果一个函数调用传递了多个实参,函数定义就需要多个形参来接收。函数柯里化,就是让函数不接收全部的实参,只接收部分参数,然后在函数内再次返回一个小函数,来接收剩余部分的参数,让函数整个运行流程,可以分多个步骤执行。