什么是模块模式
在JavaScript中没有包(Package)的概念,而面对日益庞大的JavaScript代码,而这正促使模块化开发的迫切需求,所以也就诞生了JavaScript的模块模式, JavaScript模块模式原先是由Yahoo的Douglas Crockford提出的,他称之为 模块模式 (Module Patterns).
模块模式提供了用于创建独立解耦的代码片段的工具,这些代码可以被当成黑盒,当你正在写的软件需求发生变化时,这些代码可以被添加、替换、移除。
模块模式是好几种模式的组合,它包括
- 即时函数模式
- 私有和特权成员模式
- 命名空间模式
- 依赖声明模式
即时函数模式
JavaScript中的匿名闭包是让一切成为可能的基础,而且这也是JavaScript最好的特性。函数内运行的代码都存在于闭包内,这个闭包在整个应用的生命周期内都保持私密和自己的状态。
var Cart=(function(){
//私有
var my={},cart=[];
function math_num(){
return cart.length;
};
//公有
my.name=function(){
var temp=[];
for(key in cart){
temp.push(cart[key].item);
}
return temp;
};
my.sum=math_num;
my.add=function (i) {
cart.push(i);
};
return my;
}());
我们通过即时函数提供的私有作用域保证了模块私有成员的私有性,在最后返回对象了一个对象,该对象包含该模块的公共API。
未完,待续 ···········
网友评论