zoukankan      html  css  js  c++  java
  • JS闭包(2)

    利用闭包的特点,我们可以在封装自己的模块的时候只向外暴露我们模块中的数据,而不让其修改。

    1.第一中封装的方式,新建一个myModule.js文件,这个模块的作用是对外部提供明天和后天的天气。

    在myModule.js中:

    function myModule(){

      var tomorrow = '晴';

      var dayAfterTomorrow = '阴';

      function getTomorrowWeather(){

        console.log(tomorrow );

      }

      function getDayAfterTomorrowWeather(){

        console.log(dayAfterTomorrow );

      }

      return {

      getTomorrowWeather:getTomorrowWeather,

      getDayAfterTomorrowWeather:getDayAfterTomorrowWeather

      };

    }

    在使用该模块时:<script src = "myModule.js"></script>

    <script >

      var module = myModule();

      module .getTomorrowWeather();

      module .getDayAfterTomorrowWeather();

    </script>

    2.第二种封装方式,

    新建一个myModule.js文件,在myModule.js中:

    (function myModule(){

      var tomorrow = '晴';

      var dayAfterTomorrow = '阴';

      function getTomorrowWeather(){

        console.log(tomorrow );

      }

      function getDayAfterTomorrowWeather(){

        console.log(dayAfterTomorrow );

      }

      window.myModule =  {

      getTomorrowWeather:getTomorrowWeather,

      getDayAfterTomorrowWeather:getDayAfterTomorrowWeather

      };

    })();//即在引用该模块的时候就直接执行里面的这个函数,将模块返回的对象直接绑定在window对象中,外部就可以直接访问到这个返回的模块对象直接使用。

    在使用该模块时:<script src = "myModule.js"></script>

    <script >

      myModule.getTomorrowWeather();

      myModule.getDayAfterTomorrowWeather();

    </script>

  • 相关阅读:
    邻项交换排序
    [POJ 2559]Largest Rectangle in a Histogram 单调栈
    最大子序和 单调队列
    单调栈 总结
    计算中缀表达式
    [HYSBZ 2457] 双端队列
    数组的宽度 单调栈
    SVM从入门到精通
    CVPR2018_RotationNet: Joint Object Categorization and Pose Estimation Using Multiviews from Unsupervised Viewpoints
    比特币以及区块链入门
  • 原文地址:https://www.cnblogs.com/maycpou/p/12251939.html
Copyright © 2011-2022 走看看