在extend()
函数中,source的输出是
{ add: [Function: add], show: [Function: show] }
见第14行
但在for循环中有另一个名为extend的新属性?为什么
答案 0 :(得分:2)
for循环将查看对象的原型链。这是一个很好的article。
为避免这种情况,在循环内部可以创建一个if语句来检查属性是否是对象的一部分。
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
查看有关hasOwnProperty的更多详情。