这是我的代码:
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'
答案 0 :(得分:3)
你可以在你的对象中使它成为一个函数,从而保持你的代码干燥
getModel: function(model){
return model || Model.get();
}
现在在需要模型的块中使用以下内容。
var test_model = this.getModel(model);
答案 1 :(得分:0)
默认参数是ECMA 6提案的一部分,仅适用于Firefox 15.0及更高版本。没有其他浏览器支持它。