JS模块化编程

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);

保证模块的独立性,并且让它的依赖关系变得明显

你可能感兴趣的:(JS模块化编程)