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>

原文地址:https://www.cnblogs.com/maycpou/p/12251939.html