單例模式的定義是:保證一個(gè)類僅有一個(gè)實(shí)例往弓,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。
單例模式是一種常用的模式,有一些對(duì)象我們往往只需要一個(gè)合是,比如線程池衫樊、全局緩存飒赃、瀏覽器中的 window 對(duì)象等。在 JavaScript開發(fā)中科侈,單例模式的用途同樣非常廣泛载佳。試想一下,當(dāng)我們單擊登錄按鈕的時(shí)候臀栈,頁(yè)面中會(huì)出現(xiàn)一個(gè)登錄浮窗蔫慧,而這個(gè)登錄浮窗是唯一的,無(wú)論單擊多少次登錄按鈕权薯,這個(gè)浮窗都只會(huì)被創(chuàng)建一次姑躲,那么這個(gè)登錄浮窗就適合用單例模式來(lái)創(chuàng)建。
let SingleTon = (html => {
let instance;
class SingleTon {
constructor (html) {
if (instance) {
return instance;
}
this.html = html;
instance = this;
return instance;
}
}
return SingleTon;
})();
let a = new SingleTon('aaa')
let b = new SingleTon('bbb')
console.log(a === b)
運(yùn)行結(jié)果:true