单例模式比较简单,下面直接给出代码实现
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(){//可以访问私有变量
}
}