js的模块化发展历程
- 函数式
function m1(){
//...
}
function m2(){
//...
}
- 对象写法
var module1 = new Object({
_count : 0,
m1 : function (){
//...
},
m2 : function (){
//...
}
});
- 立即执行函数
var module1 = (function(){
var _count = 0;
var m1 = function(){
//...
};
var m2 = function(){
//...
};
return {
m1 : m1,
m2 : m2
};
})();
- 放大镜模式
var module1 = (function (mod){
mod.m3 = function () {
//...
};
return mod;
})(module1);
- 宽放大模式
var module1 = ( function (mod){
//...
return mod;
})(window.module1 || {});
- 输入全局变量
var module1 = (function ($, YAHOO) {
//...
})(jQuery, YAHOO);