引用博客
http://www.ruanyifeng.com/blog/2012/10/javascript_module.html
**为什么使用模块
因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。
1.原始写法
只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。
function m1(){
//...
}
function m2(){
//...
}
2.对象写法
把模块写成一个对象,所有的模块成员都放到这个对象里面
var module1 = new Object({
_count : 0,
m1 : function (){
//...
},
m2 : function (){
//...
}
});
或者
var module1 = {
count:3,
init:function( num ){
....(code)
},
run:function(){
<code>
}
}
调用方法
mode1.init(num);
缺点
可以在外部改写对象状态,即修改count的值。修改方法:
modle1.count = 5;
3.立即执行函数方式
达到不暴露私有成员的目的。
var module1 = (function(){
var _count = 0;
var m1 = function(param){
//...
};
var m2 = function(){
//...
};
return {
m1 : m1,
m2 : m2
};
})();
调用方法:
modle1.m1(param);
直接调用
console.log(modle1._count)//undefined 不能再外部改变
4.放大模式
如果一个模块很大,必须分成几个部分,或者一个模块需要继承另一个模块,这时就有必要采用"放大模式"(augmentation)。
网友评论