1.模块的对象写法
var module1=new Object({
_count : 0;
m1 : function(){
...
},
m2 : function(){
...
}
});
使用的时候直接调用模块属性
module1.m1();
BUT 外部可以更改内部变量
module1._count=10;
2.立即执行函数模块
var module1=(function(){
var _count : 0;
var m1 : function(){
...
},
var m2 : function(){
...
}
return{
m1:m1,
m2:m2
}
})();
console.log(module1._count) //undefined
以上是模块的基本写法
4.放大模式
模块很大,或者模块继承
var module1=(function(mod){
mod.m3=function(){
...
}
return mod;
})(module1);
添加了一个新方法m3,return新的module1模块
5.宽放大模式
如果module1加载不存在空对象
var module1=(function(mod){
mod.m3=function(){
...
}
return mod;
})(window.module1||{});
参数可以是空对象
6.输入全局变量
独立性是模块最重要的部分,所以不与程序的其他部分交互显得尤为重要,为了在模块内部调用全局变量,需要将变量显示的输入模块
var module1=(function($,YAHOO){
//...
})(JQuery,YAHOO);
保证模块的独立性,并且让它的依赖关系变得明显