jQuery $ .extend没有覆盖目标属性

时间:2013-08-19 07:41:34

标签: javascript jquery

是否可以扩展对象而不覆盖已设置的属性? 在下面的例子中,我正在寻找一种方法为猫添加2个翅膀,但保留它是4条腿。

var cat  = { legs: 4 };
var bird = { legs: 2, wings: 2 }

// some references in my application to the original cat
var some_cat = cat;

$.extend( cat, bird );

// expected { legs: 4, wings: 2 }
console.log( some_cat );

更新

我忘了在原始问题/示例中说清楚,但重要的是它修改原始猫对象。

1 个答案:

答案 0 :(得分:4)

尝试类似 -

for (prop in bird) {
    if(!cat.hasOwnProperty(prop)) {
        cat[prop] = bird[prop];
    }
}

cat = {leg:4,wings:2}