如何交叉两个对象并在javascript中保留第一个对象的引用

时间:2015-05-20 12:22:55

标签: javascript

编辑1 :我的问题被标记为重复,但它没有回答我的问题,我不想合并但是在foo中交叉吧... 如果bar拥有额外的属性,则在foo中合并bar将导致foo具有3个属性。我想要的是复制也在foo对象中出现的bar属性的值。

我有两个对象

var foo = { id:8, name:"luke" }
var bar = { id:9, name:"vador" }

视图会在foo对象上保留引用,然后foo=bar不会更新视图,因为foo有对数据的新引用。

然后我的问题是如何在foo中交叉bar以保留foo的参考?

类似于

foo.id = bar.id
foo.name = bar.name

但由于foo和bar对象可能有很多属性,因此手动编写所有内容会变得乏味。

在不使用js框架的情况下,最合适的交叉方式是什么?

1 个答案:

答案 0 :(得分:2)

var foo = { id:8, name:"luke" };
var bar = { id:9, name:"vador" };

for (var key in bar) {
    if (key in foo)
        foo[key] = bar[key];
}

console.log (foo);

if (key in foo)检查它是否具有该属性,如果没有,则没有任何反应。