JavaScript设计模式之单例模式实例
什么是单例模式
单例模式是一种创建型设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。
在JavaScript中,单例模式可以通过类的静态属性或闭包来实现。下面我们会用两个例子来说明。
静态属性实现
在这个例子中,我们定义一个Singleton类,使用类的静态属性来实现单例模式。
class Singleton {
  static instance = null;
  constructor() {
    if (Singleton.instance) {
      return Singleton.instance;
    }
    Singleton.instance = this;
  }
}
上面的代码中,我们在Singleton类中声明了一个静态属性instance,初始值为null。在类的构造函数中,我们判断instance是否为null,如果不是,返回已有的实例;如果是,为instance赋值为this,并返回它。
这样,我们就可以创建Singleton的实例,并确保只有一个实例存在。
const s1 = new Singleton();
const s2 = new Singleton();
console.log(s1 === s2); // true
上面的代码中,我们分别创建了两个Singleton的实例s1和s2,它们是同一个对象。
闭包实现
在这个例子中,我们使用闭包来实现单例模式。
const Singleton = (() => {
  let instance = null;
  return class {
    constructor() {
      if (instance) {
        return instance;
      }
      instance = this;
    }
  };
})();
上面的代码中,我们定义了一个IIFE(立即调用函数表达式),返回一个闭包,闭包包含一个instance变量和一个Singleton类。在Singleton类的构造函数中,我们判断instance是否为null,如果不是,返回已有的实例;如果是,为instance赋值为this,并返回它。
这样,我们就可以创建Singleton的实例,并确保只有一个实例存在。
const s1 = new Singleton();
const s2 = new Singleton();
console.log(s1 === s2); // true
上面的代码中,我们分别创建了两个Singleton的实例s1和s2,它们是同一个对象。
总结
单例模式是一种创建型设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。在JavaScript中,单例模式可以通过类的静态属性或闭包来实现。
以上是完整的JavaScript单例模式实现攻略,希望对你有所帮助。
The End





大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)