2012-04-10 8 views
3

私は、モジュールが定義された後に呼び出されるinit()を持つ「モジュール」(つまり、実質的には静的な静的クラス)を定義するパターンを使用するプロジェクトに取り組んでいます。 。私はconfigデフォルトを定義し、私はすぐに見ていないよどんな長所や短所があります場合は、1つは—方が良いかもしれない疑問に思うために、このコードベースに2つのパターンを見ているJavaScriptモジュールパターン:デフォルト値

MyNamespace.MyModule = (function() { 
    var my = {}; 
    my.init = function(config) { 
     // setup initial state using config 
    }; 
    return my; 
})(); 

:ように見えます。推薦?ここで

が最初です:

MyNamespace.MyModule = (function() { 
    var my = {}, 
     username, 
     policyId, 
     displayRows; 

    my.init = function(config) { 
     config = config || {}; 
     username = config.username || 'Anonymous'; 
     policyId = config.policyId || null; 
     displayRows = config.displayRows || 50; 
    }; 

    return my; 
})(); 

そして、ここでは、第二のだ:

MyNamespace.MyModule = (function() { 
    var my = {}, 
     username = 'Anonymous', 
     policyId = null, 
     displayRows = 50; 

    my.init = function(config) { 
     config = config || {}; 
     username = config.username || username; 
     policyId = config.policyId || policyId; 
     displayRows = config.displayRows || displayRows; 
    }; 

    return my; 
})(); 
+0

2番目の例では、メンバを初期化し、configに何も指定されていない場合、既定値として既定値を使用することでベストプラクティスを示しています。 – Maess

+3

デフォルトのパラメータにサブパラメータとして複雑なオブジェクトを含めることができる場合は、2番目の方法も優れています。 –

答えて

4

は大きな違いはありません、それはすべてあなたに読めるのですかについては本当にです。私は個人的には、ロジックからデフォルトを分離するので、2番目の方法が好きです。

関連する問題