js 单例模式

185 阅读1分钟

定义

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

比如我们有一个弹层的功能,我们仅需要创建一次,然后控制它显示隐藏等功能,而不需要每次都会去再次创建

实现

class A {
  constructor (name){
    this.name = name
    this.instance = null
  }

  sayName(){
    console.log(this.name)
  }

  static createSingle(name){
    return this.instance || (this.instance = new A(name))
  }
}

const b = A.createSingle('aaa')
const c = A.createSingle('bbb')

b.sayName()         // 'aaa'
c.sayName()         // 'aaa'
console.log(b===c)  // true