可能重复:
如何动态合并两个JavaScript对象的属性?
我有两个对象a和b定义如下:
a = {
a: 1,
af: function() { console.log(this.a) },
};
b = {
b: 2,
bf: function() { console.log(this.b) },
};
Run Code Online (Sandbox Code Playgroud)
我现在想要的是创建另一个将获得a和b属性的对象,如下所示:
c = {
a: 1,
af: function() { console.log(this.a) },
b: 2,
bf: function() { console.log(this.b) },
}
Run Code Online (Sandbox Code Playgroud)
请注意,a和b需要保持不变.
知道如何做到这一点?
您可以对 a 和 b 执行 for in 循环,并将所有hasOwn属性复制到新对象。
var c = {};
for (var p in a)
if(a.hasOwnProperty(p))
c[p] = a[p];
for (var p in b)
if(b.hasOwnProperty(p))
c[p] = b[p];
Run Code Online (Sandbox Code Playgroud)
或者,如果您碰巧使用 jQuery,您可以这样做:
var c = $.extend({}, a, b);
Run Code Online (Sandbox Code Playgroud)