單例模式比較簡單,下面直接給出代碼實(shí)現(xiàn)
function Singleton(){
this.instance = null;
}
//定義一個(gè)靜態(tài)方法
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)
知識(shí)點(diǎn):js類方法
在js中,函數(shù)是第一等公民,你可以把函數(shù)當(dāng)成對象使用埠帕。當(dāng)給函數(shù)添加一個(gè)方法時(shí),比如上面的Singleton.getInstance=function(){}
,就相當(dāng)于給函數(shù)添加了一個(gè)屬性
function Singleton(){
this.instance = null;
this.getInstance = function(){//可以訪問私有變量
}
}