天天看點

JS中的單例模式及單例模式原型類的實作

單例模式

單例模式的定義: <code>保證一個類隻有一個執行個體,并提供一個通路它的全局通路點</code>

通過一個簡單的例子來了解單例模式的作用:

現在頁面上的這個按鈕每被點選一下就會生成一個<code>div</code>,但是現在如果這個div是登入框,我當然就會想要這段函數隻生成一個,這時候就可以用到單例模式的思想:讓一個類隻會生成一個執行個體。

在js裡實作單例模式很簡單,隻要使用閉包就能做到,這是使用es6的class文法實作的單例模式:

這樣,通過閉包實作了單例模式,無論點選多少次按鈕,隻會生成一個div。

考慮到單例模式應用的廣泛,我實作了一個原型類,通過繼承該原型類可以直接得到一個單例模式的類:

需要設計為單例的類隻需要繼承這個原型類後在構造函數的<code>super</code>中寫入構造函數就能實作單例模式。

繼續閱讀