学习深入理解JavaScript系列(3)-module模式
module模式
模块化->重用,松耦合。
var Cal = function () {
return {
add : function (x) {
//
}
}
}
调用:var cal = new Cal()。但是每一次都会复制一份实例。如果只复制一份,需要自执行。
var Cal = (function () {
return {
add : function (x) {
//
}
}
}());
可以把外部变量(或全局)传递到匿名函数中。
var Cal = (function ($, w) {
return {
add : function (x) {
//
}
}
}(jQuery, window));
扩展
var addModule = (function (m) {
m.add = function () {
};
return m;
}(myModule))
若避免引用的时候不存在,需要在引用为空的时候为{}
var addModule = (function (m) {
return m;
}(myModule || {}))
modlue分割到多个文件后,如果私有方法可以共享,则如下:
var myModule = (function (my) {
var _private = my._private = my._private || {},
_seal = my._seal = my._seal || function () {
delete my._private;
delete my._seal;
delete my._unseal;
},
_unseal = my._unseal = my._unseal || function () {
my._private = _private;
my._seal = _seal;
my._unseal = _unseal;
}
}(mymodule || {}))
Written on April 27, 2015
