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>

  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/maycpou/p/12251939.html
Copyright © 2011-2022 走看看