我有兩個方法,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'? – guypursey 2013-03-13 10:32:20
另一個問題:「Utils」還是「C」應該是私密的還是公開的?它們是否應該享有特權(即,可以在您的關閉中訪問私有變量)? – guypursey 2013-03-13 10:33:42