2025-03-29 14:35:49 +08:00

850 B
Executable File

单例模式

定义:单例模式指的是保证一个类仅有一个实例,且提供一个访问它的全局访问点。全局缓存,window对象,都可以看作是一个单例。

目的: 解决一个全局使用的类频繁地创建与销毁

使用ES6 class 创建单例:

class Instance {
    static init () {
        if (!this.instance) {
            this.instance = new Instance()
        }
        return this.instance;
    }
}
const instance1 = Instance.init()
const instance2 = Instance.init()

console.log(instance1 === instance2) //true

使用闭包创建单例:

const instance = (function() {
    let instance = null;
    return function(name) {
        if (!instance) {
            instance = new Singleton(name)
        }
        return instance;
    }
}())