我正在开发一个项目,我们使用模式来定义"模块" (即有效的公共静态类),其中每个模块都有一个init()
,一旦定义了模块就应该调用它。它看起来像:
MyNamespace.MyModule = (function () {
var my = {};
my.init = function(config) {
// setup initial state using config
};
return my;
})();
我在此代码库中看到两种模式,用于定义config
默认值并想知道哪一种可能更好 - 如果有任何优点或缺点我不会立即看到。建议?
这是第一个:
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 :(得分:4)
没有什么区别,它真的是关于什么是可读的。我个人喜欢第二种方法,因为它将默认值与逻辑分开。