JS实现单例模式

单例模式比较简单,下面直接给出代码实现

function Singleton(){
    this.instance = null;
}
//定义一个静态方法
Singleton.getInstance = function(){
    if(!this.instance){
        this.instance = new Singleton()
    }
    return this.instance
}

var a = Singleton.getInstance()
var b = Singleton.getInstance()

console.log(a === b)

知识点:js类方法

在js中,函数是第一等公民,你可以把函数当成对象使用。当给函数添加一个方法时,比如上面的Singleton.getInstance=function(){},就相当于给函数添加了一个属性

function Singleton(){
   this.instance = null;
   this.getInstance = function(){//可以访问私有变量
   }
}

你可能感兴趣的:(JS实现单例模式)