特点:
1.函数嵌套函数
2.内层函数可以访问外层函数的变量和参数
作用:1.防止变量和参数被垃圾回收机制回收
2.防止变量和参数被外部污染,变量只能在闭包内部可访问
风险: 滥用可能造成内存泄露
闭包的应用:
1.实现模块化
2.缓存函数,将函数缓存到外层函数变量中,以避免相同函数被多次调用
3.封装私有变量,通过闭包来获取和设置外层函数的变量,避免变量被外部所污染
4. 实现柯里化
5. 防抖和节流