闭包小记

<script>
    //1.闭包.
    //就是声明在函数内部可以访问函数内部的局部变量的函数.
    //闭包就是能够读取其他函数内部变量的函数, 由于在 Javascript 语言中,只有函数内部的子函数才能读取局部变量, 因此可以把闭包简单理解成 “定义在一个函数内部的函数”。
    // function test1(){
    //   var num = 10;
    //   function test2(){
    //     console.log(num);
    //   }
    // }
    //-------------------------------
    //闭包: 在函数外部访问函数内部的局部变量.
     function test1(){
       var num = 10;
       function test2(){
         console.log(num);
       }
       return test2; //返回的是test2这个函数本身
     }
     //调用test1函数,就会得到一个返回值fn,这个fn本质就是test2函数.
     var fn =  test1();
     fn(); //在这里调用fn函数,实际上就是执行的test2的函数体.
    //--------------------------------------------
    // var fn = (function () {
    //   var num1= 10;
    //   function inner(){
    //     console.log(num1);
    //   }
    //   return inner;
    // }());
    // //此时这个fn就相当于是inner函数,调用fn就执行inner函数的函数体.
    // fn();
  </script>

 

豫ICP备17012861号