前端学习笔记之五——按照自己的理解写一个闭包

Posted 前端路上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端学习笔记之五——按照自己的理解写一个闭包相关的知识,希望对你有一定的参考价值。

     最近工作忙,好几天没学习了。不过一有空还是要给自己加油的。

     还是按照论坛的思路,一个题一个题地往下做,一步一个脚印。

     今天的作业是:

    

----------------------------------------------------------------

     闭包,貌似是前端领域最重要的关键词之一。记得之前看达内的视频,讲js的张东老师说,闭包非常重要,重要到你们必须每天都要复习一遍。好吧,那现在就来温习一遍。

     ***闭包:在函数外也可使用局部变量的特殊语法现象。

     ***何时使用闭包:即共享局部变量,又不希望随便篡改时。

     ***构建一个闭包结构:3步:
           1. 使用外层函数封装受保护的局部变量
           2. 在外层函数内定义专门操作局部变量的内层函数
              *并返回*。
          3. 在全局调用外层函数,获得内层函数的对象,保存在全局变量中反复使用。
     ***闭包三特点:
          1. 嵌套函数
          2. 内层函数使用了外层函数的局部变量
          3. 内层函数对象被返回到外部,在全局反复调用

    ***闭包示例:

            function f1(){
                 var n=999;
                 nAdd=function(){n+=1}
                 function f2(){alert(n);}
                 return f2;
            }  
            var result=f1();
           result();    //999
           nAdd();      
          result();    //1000

-------------------------------------

论坛里还有位同学,写了这样一个闭包:

  function fn(n) {

       var count = n;

       var tem = function (m) {

       count = count * m;

       return tem;

       };

     tem.toString = function () {

       return count

     };

     return tem;

  }

  console.log(fn(2)(3)(4));   //24

    只是不太明白这个闭包为什么最后打印的结果是24,有木有知道的同学呢?

 

 

   

    

以上是关于前端学习笔记之五——按照自己的理解写一个闭包的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript学习笔记——闭包

深入理解闭包

Swift学习笔记-函数和闭包

Java学习笔记——设计模式之五.工厂方法

深入理解JavaScript——闭包

闭包的理解