单例模式:保证一个类只有一个实例,并且提供它的全局访问点。
class Singleton {
constructor() {
if(!Singleton.instance) {
// 将 this 挂载到单例上
Singleton.instance = this
}
return Singleton.instance
}
}
const a = new Singleton()
const b = new Singleton()
console.log(a === b)
class Singleton {
static instance = null
static getInstance() {
if(!Singleton.instance) {
Singleton.instance = new Singleton()
}
return Singleton.instance
}
}
const a = new Singleton()
const b = new Singleton()
console.log(a === b)
class Cat {}
const createSingleCat = (() => {
let instance
return () => {
if (!instance) {
instance = new Cat()
}
return instance
}
})()
const a = new Singleton()
const b = new Singleton()
console.log(a === b)