【发布时间】:2013-08-19 07:41:34
【问题描述】:
是否可以在不覆盖已经设置的属性的情况下扩展对象? 在下面的示例中,我正在寻找一种方法来为猫添加 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 );
更新
我忘了在原来的问题/例子中说清楚,但重要的是它修改了原来的猫对象。
【问题讨论】:
-
$.extend(bird, cat)? -
@Brewal 您的代码是正确的,但我认为 Dirk 的逻辑是
cat是原始对象,因此将其作为$.extend的第一个参数... -
确实@silkfire,抱歉我的例子不是很清楚。我已经更新了问题。
-
如果您想保留 cat 的设置,我认为“逻辑”是将
bird作为“原始对象”,因此将其作为第一个参数。这是您正在寻找的确切行为。我不明白为什么这不是一个解决方案。 -
因为我的应用程序中已经引用了
cat。切换参数不会更新原始的cat对象。
标签: javascript jquery