8.第二篇:第8章 单例模式

本文摘自 《JavaScript 设计模式》张容铭 著 版权归原作者所有

// 类似jquery的方式,把变量方法都封装起来,只暴露一个命名对象出来。
var fn = {
    a:function(){
        console.log(a);
    }
    c:function(){
        return this.a();
    }
};
// 利用单例模式来保存不让修改的静态变量
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
// 静态变量的惰性单例
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);

你可能感兴趣的:(8.第二篇:第8章 单例模式)