[英]Adding a new method to existing modular pattern object
我有以下模塊,有兩個方法, A()
和B()
:
var Module = (function() {
function A(){
console.log("Module: A");
B();
};
function B(){
console.log("Module: B");
Module.Utils.C(); /* Here is the problem */
};
return {
A:A,
B:B
}
} ());
說我想添加一個新方法C()
...
function C(){
console.log("C");
};
...到上面的模塊而不觸及它,即,我不想更改Module
的現有代碼,而是將其擴展為具有新的C
屬性。
在模塊定義之后,您需要執行以下操作:
Module.Utils = Module.Utils || {};
Module.Utils.C = function(){
console.log("C");
};
第一行檢查Module.Utils是否已經定義,如果不是,則定義它。 然后下一部分分配函數C.
如果你試圖只做Module.Utils.C = function(){ console.log("C"); };
Module.Utils.C = function(){ console.log("C"); };
然后你會得到一個關於Module.Utils未定義的錯誤。
我在這里創建了一個小提琴,顯示它正常工作: http : //jsfiddle.net/u5R4E/
您可以添加對象dynamicaly方法:
Module.Utils.C = function(){
console.log("C");
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.