【设计模式】JavaScript实现-单例模式

69 阅读1分钟

【设计模式】JavaScript实现

单例模式

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

懒汉模式

因为JavaScript是单线程的所以应该没有线程不安全的问题。
JavaScript也可以实现多线程的但是我还没有学到。
饿汉模式由于我不知道JavaScript怎么实现私有构造函数所以不会写。🧐
其实我自己也是半桶水,希望JavaScript潮人不吝赐教。

var Singleton = (function (){
    var ClassA = function (a) {
        this.a = a
    };
    var instance
    return function (a) {
        if (!instance) {
            instance = new ClassA(a)
        }
        return instance
    }
})()

var a = new Singleton('a')
var b = new Singleton('b')
console.log(a,b)
//ClassA { a: 'a' } ClassA { a: 'a' }