下面的代码应该用foo扩展foo,它的任务是在这个代码片段中找到“bug”对于我的生活我似乎无法找到错误。有什么我失踪?当使用其他对象扩展对象时,此代码会破坏的一些主要情况?这个对象扩展器使用hasOwnProperty有一个错误,我不确定那个错误是什么或者这个扩展器在哪里
var foo = {a:1,b:"2",c:[3]}, bar = {d:"3",e:4,f:5.0};
var extend = function (obj, extension) {
if (typeof obj === "object" && typeof extension === "object") {
for (var i in extension) {
if (extension.hasOwnProperty(i) && !obj.hasOwnProperty(i)) {
obj[i] = extension[i];
}
}
return obj;
}
}
var foo_bar = extend(foo,bar);
console.log(foo_bar); //this logs as expected
该函数不会返回任何东西,也不会触发任何错误,如果您传递非对象...?! – deceze
@ deceze-it返回* undefined *,这似乎是合理的。 – RobG