您的位置:首页 > 其它

设计模式——Module(模块)模式

2018-03-05 01:54 232 查看

Module的实现方式

在JavaScript中,有这样几种实现模块的方式。

对象的字面量表示法

Module模式

AMD模块

CommonJS模块

ECMAScript Harmony模块

针对这些方式,Module(模块)模式,作为设计模式的一种,需要研究。

对象的字面量

这样的方式是对象被描述为一组包含在大括号中,以逗号分隔的键值对。

var myObject = {
variableKey: 'mapbar_front' ,
functionKey: function (){
console.log("My Name is "+ this.variableKey)
},
}


这样的方式,就是使用字面量对象的方式实现的模块。

Module(模块)模式

显然,上面的方式,是一种很不成熟的模块的实现方式。比如,如何实现一个单独的对象拥有公有/私有方法和变量。

这样就让函数名、变量名在页面中,与其他脚本定义的函数冲突的可能性降低。

var testModule = (function(){
var count = 0;
return {
addCount: function(){
count++;
},
decCount: function(){
count--;
},
currentCount: function(){
return count;
}
}
})()


上面的方式,就是一个简单的计数器的模块的实现,你无法直接改变count,你只能通过testModule暴露出的接口,实现对count的操作。这就是Module(模块)模式的基本使用。

Module模块的引入

全局变量如何作为参数,传递到我们自己的模块中?下面给出underscore.js全局变量的引入示例:

var myModule = (function(_){
return {
test: function(){
console.log(_.min([1,2,3]));
}
}
})(_)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐