利用閉包的兩個機制(保護和儲存),實現模組化管理。
單列設計模式:最早的模組化實現方式,是利用閉包的機制,對功能相近的**實現模組化管理。還可以解決多人開發時命名衝突的問題。栗子:有兩個不同的模組,但是這兩個模組中又有某個功能是相同的,如何實現只寫一次,就能讓兩個模組都能實現(呼叫)該功能(方法)呢?
// 單列設計模式(利用閉包實現模組化管理)
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...