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>
标签:闭包,function,getDayAfterTomorrowWeather,getTomorrowWeather,JS,模块,var,myModule 来源: https://www.cnblogs.com/maycpou/p/12251939.html