定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
比如我们有一个弹层的功能,我们仅需要创建一次,然后控制它显示隐藏等功能,而不需要每次都会去再次创建
实现
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