简介
闭包的造成
有大函数嵌套小函数, 小函数应用大函数中的变量, 大函数外跟小函数放弃援用关系
闭包的特点
- 变量公有话(放在部分不受全局净化)
- 缩短了变量的申明周期
-
间接的让全局能够拜访局部变量
闭包的弊病
每调用一次大函数, 就会在内存中造成一个不销毁的执行空间, 滥用闭包容易造成内存透露
闭包的应用场景
- 封装防抖节流
- 在循环中绑定事件或者循环中执行异步代码的时候
-
函数柯里化
示例:function fn(){ let a = 1 // a 是一个被 fn 创立的局部变量 function bar(){ // bar 是一个外部函数, 就是一个闭包 console.log(a); // 应用大函数申明的变量 } return bar()} fn() // 1