简介

闭包的形成

有大函数嵌套小函数,小函数使用大函数中的变量,大函数外跟小函数保持引用关系

闭包的特点

  1. 变量私有话(放在局部不受全局污染)
  2. 延长了变量的声明周期
  3. 间接的让全局可以访问局部变量

    闭包的弊端

    每调用一次大函数,就会在内存中形成一个不销毁的执行空间,滥用闭包容易造成内存泄漏

    闭包的使用场景

  4. 封装防抖节流
  5. 在循环中绑定事件或者循环中执行异步代码的时候
  6. 函数柯里化
    示例:

     function fn(){  
         let a = 1 // a 是一个被 fn 创建的局部变量
        function bar(){ // bar 是一个内部函数,就是一个闭包
             console.log(a); // 使用大函数声明的变量
         }
         return bar()
     }
     fn() // 1

道友
1 声望0 粉丝

« 上一篇
重排和重绘
下一篇 »
axiso封装