如何在JavaScript中将一个对象文字添加到另一个对象文字

如何在JavaScript中将一个对象文字添加到另一个对象文字,javascript,Javascript,我有一个对象文本,a: a = {foo: 'foo'}; 我想得到b,是a和{bar:'bar}的组合: b = {foo: 'foo', bar: 'bar'}; 如果不写出a的所有属性,如何处理?i、 e: b = a + {bar: 'bar'}; 不,我不想让a成为b的属性,如下所示: b = {a: a, bar: 'bar'}; 您可以遍历a的属性并将它们添加到b,如下所示 for (var key in a) { b[key] = a[key]; } for (

我有一个对象文本,
a

a = {foo: 'foo'};
我想得到
b
,是
a
{bar:'bar}
的组合:

b = {foo: 'foo', bar: 'bar'};
如果不写出
a
的所有属性,如何处理?i、 e:

b = a + {bar: 'bar'};
不,我不想让a成为b的属性,如下所示:

b = {a: a, bar: 'bar'};

您可以遍历
a
的属性并将它们添加到
b
,如下所示

for (var key in a) {
    b[key] = a[key];
}
for (var key in a) {
    if (a.hasOwnProperty(key) {
        b[key] = a[key];
    }
}
如果只想添加特定于
a
(不继承的属性)的属性,可以这样做

for (var key in a) {
    b[key] = a[key];
}
for (var key in a) {
    if (a.hasOwnProperty(key) {
        b[key] = a[key];
    }
}

正如S McCrohan指出的,如果您使用的是jQuery,那么您可以使用方法来做同样的事情

如果您已经在使用jQuery,您可以使用
jQuery.extend()
,尽管我不会仅仅为了这个目的而将jQuery添加到项目中。@smcrohan OP没有提到
jQuery
::)同意-如果他们正在使用它,并且没有意识到它可能会有所帮助,就将其丢弃,但在评论中这样做是因为你的答案是正确的。@Smcrohan在回答中补充道:)谢谢:)