乐趣区

关于javascript:闭包

简介

闭包的造成

有大函数嵌套小函数, 小函数应用大函数中的变量, 大函数外跟小函数放弃援用关系

闭包的特点

  1. 变量公有话(放在部分不受全局净化)
  2. 缩短了变量的申明周期
  3. 间接的让全局能够拜访局部变量

    闭包的弊病

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

    闭包的应用场景

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

     function fn(){  
         let a = 1 // a 是一个被 fn 创立的局部变量
        function bar(){ // bar 是一个外部函数, 就是一个闭包
             console.log(a); // 应用大函数申明的变量
         }
         return bar()}
     fn() // 1
退出移动版