编辑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框架的情况下,最合适的交叉方式是什么?
答案 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)
检查它是否具有该属性,如果没有,则没有任何反应。