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;
})();
2番目の例では、メンバを初期化し、configに何も指定されていない場合、既定値として既定値を使用することでベストプラクティスを示しています。 – Maess
デフォルトのパラメータにサブパラメータとして複雑なオブジェクトを含めることができる場合は、2番目の方法も優れています。 –