下面的代碼應該用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