本文摘自 《JavaScript 設計模式》張容銘 著 版權(quán)歸原作者所有
// 類似jquery的方式,把變量方法都封裝起來,只暴露一個命名對象出來。
var fn = {
a:function(){
console.log(a);
}
c:function(){
return this.a();
}
};
// 利用單例模式來保存不讓修改的靜態(tài)變量
var Conf = (function(){
var _conf = {
"MAX_NUM":100,
"MIN_NUM":1,
"COUNT":1000
}
// 返回取值器對象
return {
// 取值器方法
get:function(name){
return conf[name] ? conf[name] : null;
}
}
})();
var a = Conf.get('MAX_NUM');
console.log(a);// 100
// 靜態(tài)變量的惰性單例
var LazyS = (function(){
// 單例實例引用
var _i = null;
// 單例
function S(){
// 定義私有屬性和方法
return {
publicMethod:function(){},
publicProperty:‘1.0’
}
}
// 獲取單例對象接口
return function(){
if(!_i){
_i == S();
}
return _i;
}
})();
var a = lazyS();
console.log(a);