簡體   English   中英

向現有模塊化模式對象添加新方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM