编辑:
为了回答您的实际问题(我最初认为您的代码有问题),代码的a || {}
一部分说“要么使用'a',或者如果'a'未定义,则使用新的空对象({})”。
建议:
我建议您在E.martin
方法中返回 a,因为 JavaScript 中的对象不是硬引用的。如果您不返回结果,您可能会丢失发送给该方法的原始对象。
假设mergein
是一个连接两个对象的方法:
function mergein(new_obj, old_obj){
for(var i in new_obj){
old_obj[i] = new_obj[i];
}
return old_obj;
}
如果我们有你原来的方法,当我们得到我们的结果时,我们将丢失我们原来的对象键/值:
E.martin = function (a) {
a = mergein({ api_url: "/somefolder/",
json_parameter: false,
channel_id: null,
after_response_hook: null},
a || {});
}
var b = {foo:'bar'};
var result = martin(b);
console.log(result['foo']); // error
如果我们返回我们的a
对象,我们将用添加的键/值取回我们的原始对象:
E.martin = function (a) {
return mergein({ api_url: "/somefolder/",
json_parameter: false,
channel_id: null,
after_response_hook: null},
a || {});
}
var b = {foo:'bar'};
var result = martin(b);
console.log(result['foo']); // 'bar'