用singleton单例模式实现一个模块
对于具有唯一性的模块(例如,购物车项目中的物品数据,各个页面都要使用它,而且是唯一的数据),用singleton模式。
var mySingleton = (function() {
var privateVar = '';
var instance = {
publicMethod1 : publicMethod1,
publicMethod2 : publicMethod2
}
return instance;
function publicMethod1 () {
},
function publicMethod2() {
}
function privateMethod () {
}
})();
备注:
这里采用立即执行函数的方式,好处是便于隐藏私有函数,只有通过return暴露出来的函数才是对外的接口函数, 而在模块内各个函数是平等的,都可以直接调用。
进一步, mySingleton可以是一个大module中的子module
var module = module || {};
module.mySingleton = (function() {
})();
http://yuiblog.com/blog/2007/06/12/module-pattern/
http://www.jibbering.com/faq/faq_notes/closures.html