2

如果我有很多東西像這樣的模塊:顯露的模塊模式返回值約定

My.Module = (function() { 
    function method1() {} 
    function method2() {} 
    ... 
    function method99() {} 

    return { 
     method1: method1, 
     method2: method2, 
     ... 
     method99: method99 
    }; 
})(); 

我怎麼能避免重蹈方法名?他們都出現在三個地方。

如果我使用這樣的局部變量:

My.Module = (function() { 
    var exp = {}; 

    exp.method1 = function() {}; 
    exp.method2 = function() {}; 
    ... 
    exp.method99 = function() {}; 

    return exp; 
})(); 

應該採取什麼exp變量叫什麼名字? expexportsexportedobj,object?有關係嗎?什麼是約定?

如果有一種方法比這兩種都好,那是什麼?

+2

的名稱並不重要,它只是引用返回的對象。 –

+0

@NinaScholz我明白這個名字不會以任何方式影響代碼,但是它有一個約定嗎?是否有一個我可以使用的廣泛接受的名稱,可以立即告訴讀者「哦,是的,這是公共的東西」? –

+1

只是稱它爲保持。 –

回答

0

第一種方法是最乾淨的方式IMO。

至於你的secnd方法中的var名稱,名稱,它不管你喜歡什麼名字都不會暴露。 Module應該不錯。

但是,如果你真的不想再重複了函數名,你可以這樣做:

My.Module = (function() { 

    return { 
     method1: function method1() {}, 
     ... 
     method99: function method99() {} 
    }; 
})();