在object中定义的函数中的默认参数
Default arguments in functions which defined in object
下面是我的代码:
MyModel = {
get: function(key, model) {
if(typeof(model) === 'undefined') { // A
model = Model.get(); // A
} // A
return model.data[key];
},
getAll: function(model) {
if(typeof(model) === 'undefined') {
model = Model.get();
}
return model.data;
},
save: function(data, model) {
if(typeof(model) === 'undefined') {
model = Model.get();
}
model.save(data);
},
//...
}
A
部分重复。
有没有办法做得更漂亮?
像get: function(key, model = Model.get())
;
来自MDN,但在许多浏览器中不起作用。
function setBackgroundColor(element, color = 'rosybrown') {
element.style.backgroundColor = color;
}
setBackgroundColor(someDiv); // color set to 'rosybrown'
setBackgroundColor(someDiv, undefined); // color set to 'rosybrown' too
setBackgroundColor(someDiv, 'blue'); // color set to 'blue'
您可以将其作为对象中的函数,从而使代码保持干燥
getModel: function(model){
return model || Model.get();
}
现在在需要模型的块中使用以下代码。
var test_model = this.getModel(model);
默认参数是ECMA 6提案的一部分,仅适用于Firefox 15.0及以上版本。没有其他浏览器支持它。
相关文章:
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- Javascript 默认参数
- 具有默认参数值的 ES6 类构造函数上的 NodeJS 错误
- 如何使用默认值对参数进行解结构
- ES6默认参数
- 如何在Javascript匿名函数中提供默认参数
- 处理Ember.js默认路由之外的页面URL哈希参数
- 使用可选参数和默认模型定义路由
- ES6 默认选项参数
- 如何在 javascript 函数(如 node 或表达式 HTTP 函数)中接收默认参数
- 在节点.js中设置 HTTP GET 中的 URL 参数的默认值
- 接受选项对象作为参数的简洁方法,回退到省略属性的默认值
- 参数与 JavaScript 默认方法同名
- 要传递给 fn.apply 的标准默认第一个参数
- 函数表达式中的默认参数
- 带有默认参数的 JavaScript 函数
- 为什么在通过 AJAX 获取 href 的更多参数后无法触发默认单击
- 在表单中设置默认参数
- 如果不存在,我如何使Javascript参数默认为某些东西
- EmberJS查询参数默认值