JS單列設計模式

2021-10-23 04:45:21 字數 1530 閱讀 3824

利用閉包的兩個機制(保護和儲存),實現模組化管理。

單列設計模式:最早的模組化實現方式,是利用閉包的機制,對功能相近的**實現模組化管理。還可以解決多人開發時命名衝突的問題。

栗子:有兩個不同的模組,但是這兩個模組中又有某個功能是相同的,如何實現只寫一次,就能讓兩個模組都能實現(呼叫)該功能(方法)呢?

// 單列設計模式(利用閉包實現模組化管理)

let queryweather =

(function()

letsetweather

=function()

// 將該模組中需要外調的函式暴露出去

return})

();let querynews =

(function()

;// 暴露自己的方法,方便模組之間相互呼叫

return})

(); querynews.

getcity()

;<

/script>

惰性函式也是利用閉包的機制,讓函式「懶」執行,比如在執行多次的時候,函式本身只進行了一次判斷。(多用於解決相容判斷問題)

// 惰性函式(比如只需要判斷一次)

// 栗子:給元素繫結事件

/* function emit(element, type, func)

// 如果元素支援attachevent,則執行下面的**

else if(element.attachevent)

// 如果都不支援前面兩種,就統一用另一種繫結方式

else

} */

/* 想給box繫結fun1和fun2,執行兩次emit,那麼emit函式中的

* 判斷就要判斷兩次:繫結fun1的時候判斷一次,繫結fun2的

* 時候又判斷了一次

*/// emit(box, 'click', fun1);

// emit(box, 'click', fun2);

function

emit

(element, type, func)

}// 滿足條件2就給emit重新賦值2

else

if(element.attachevent)

}// 否則就給emit賦值3

else

}// 賦值結束後執行一次emit(這裡只會執行一次)

emit

(element, type, func);}

/* 執行兩次,但是當執行第一次的時候就能判斷emit的值是哪個函式

* 所以在執行第二次的時候(繫結fun2)就不需要在進行判斷了

*/emit

(box,

'click'

, fun2)

;emit

(box,

'click'

, fun2)

;

JS設計模式 單列模式

核心 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點 js中的單列模式關鍵字 建立唯一的物件 一 基本實現 判斷是否已有例項,有則直接返回,否則生成例項 var single function var a new single var b new single console.log a b...

單列設計模式

設計模式的概念 所謂的設計模式就是為了提高 的重用性,優雅性,實現高內聚低耦合,以及滿足開閉原則提出的開發思想,目前成熟的設計模式有23種,其中如下的幾種我們需要掌握的 單例設計模式,工廠設計模式 簡單工廠,方法工廠,抽象工廠 設計模式 靜態 動態 jdk原生 實現,cglib實現 介面卡設計模式,...

單列模式設計

1.單列 singleton 模式是最簡單的設計模式,它允許乙個類有且僅有乙個例項的方法。include using namespace std class singleton singleton operator singleton singleton const singleton public...