使用es6 class 实现单例模式

// 创建一个单例模式类
class Singleton {
    constructor() {
        if(!Singleton.instance) {
            this.name = null
            Singleton.instance = this
        }
        return Singleton.instance
    }
    
    setName(name) {
        this.name = name
    }
    
    toString() {
        console.log(`This is Singleton toString, the name is ${this.name}.`)
    }
    
    static getInstance() {
        if (!this.instance) {
            return this.instance = new Singleton()
        }
        return this.instance
    }
}

let sing1 = Singleton.getInstance()
let sing2 = Singleton.getInstance()
let sing3 = new Singleton()
let sing4 = new Singleton()
// sing1 === sing2  true
// sing2 === sing3  true
// sing3 === sing4  true
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容