JS設計模式 單例模式

2021-09-16 01:22:23 字數 1103 閱讀 4149

單例模式是乙個用來劃分命名空間並將一批屬性和方法組織在一起的物件,如果它可以被例項化,那麼它只能被例項化一次。

單例模式優點

並非所有的物件字面量都是單例,比如模擬資料
基本結構:

let cat =

}

上面物件字面量結構是建立單例模式的方法之一,但並不是單例模式,單例模式的特點是僅被例項化一次

要實現單例模式可以使用變數來標示該類是否被例項

基本實現:

class singleton

getname()

}let getinstance = (()=>

return instance;

}})()

let cat1 = getinstance('hello');

let cat2 = getinstance('kitty');

console.log(cat1 === cat2); //true

console.log(cat1.getname()) //'hello'

console.log(cat2.getname()) //'hello'

用instance變數標示例項singleton,如果沒有例項建立乙個,如果有則直接返回例項,由於僅能被例項化一次,cat2得到的例項和cat1相同

實用

在建立dom元素時為避免重複建立,可以使用單例模式建立

//單例模式

let createmodal = function()

//**獲取例項

let getinstance = function(fn)

}let createsinglemodal = getinstance(createmodal);

document.getelementbyid("id").onclick = function();

單例模式是一種簡單卻非常使用的設計模式,在需要時建立例項,並且只建立唯一乙個

JS設計模式 單例模式

理解 單例即只能例項乙個物件,無論new多少次,new出來的都是同乙個物件 這裡用了閉包儲存了instance變數,用於判斷是否已經建立了例項,建立了則直接返回,否則new乙個例項返回 單例模式 const grilfriend function let instance null return f...

js設計模式 單例模式

顧名思義,單例就是單一的意思,單例模式的定義是 保證乙個類僅有乙個乙個例項,並提供乙個訪問它的全域性訪問點。新建物件時判斷全域性是否有該物件,如果有,就返回該物件,沒有就建立乙個新物件返回。簡單實現 var single function return function name return in...

js 單例設計模式

單例模式的定義 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。第一種 varsingleton function name singleton.prototype.getname function singleton.getinstance function name return thi...