JavaScript 模块模式:默认值
JavaScript module pattern: default values
我正在做一个项目,我们使用一种模式来定义"模块"(即有效的公共静态类),其中每个模块都有一个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;
})();
没有太大区别,这实际上完全取决于您可读的内容。 我个人喜欢第二种方法,因为它将默认值与逻辑分开。
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- 无法在提交模式弹出窗口时禁用 .btn 默认值
- JavaScript 模块模式:默认值
- 具有默认值的选项的 JavaScript 设计模式
- jQueryUI模式添加函数默认值
- 为什么我的模式不能在mongoose数组中添加默认值?
- 如何将参数传递到模块模式以覆盖JavaScript中的默认值[private properties]
- 自动设置Mongoose子模式的默认值
- 如何使用AngularJS将Bootstrap模式中的数据重置为默认值?