zoukankan      html  css  js  c++  java
  • 前端学习笔记之五——按照自己的理解写一个闭包

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

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

         今天的作业是:

        

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

         闭包,貌似是前端领域最重要的关键词之一。记得之前看达内的视频,讲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,有木有知道的同学呢?

       

        

  • 相关阅读:
    阿里云云效技术专家分享:云原生开发、调测及可靠发布解决方案
    对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
    时序数据库永远的难关 — 时间线膨胀(高基数 Cardinality)问题的解决方案
    当Java遇上机密计算,又一段奇幻之旅开始了!
    内核热补丁,真的安全么?
    在 Dubbo3.0 上服务治理的实践
    CCF-201509-3-生成模板系统
    WPF CommandParameter的使用
    UWP App Data存储和获取
    在WPF中的ItemsControl中使用事件和命令(Using events and Commands within ItemsControl in WPF)
  • 原文地址:https://www.cnblogs.com/vivian2016/p/5839767.html
Copyright © 2011-2022 走看看