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() {} 
    }; 
})();