我想构建一个键控对象的对象。
为什么点差运算符不合并如下所用?相反,它只保留第二个对象。
let a = {
key1: {
floo: 'blar'
}
}
let b = {
key2: {
floo: 'blar'
}
}
console.log(...a, b);
最重要的是,请告诉我正确的方法!
由于
答案 0 :(得分:3)
应该是
console.log({...a, ...b});
上面将合并两个对象,并分别创建一个key1
和key2
的新对象。另请注意,对象的扩展运算符的工作方式与Object.assign()
的工作方式不同。
请注意,合并对象只是一个引用。例如,修改对象的值,如
a.key1.floo = 'someotherval';
将改变a
对象并反映在合并对象中。
有关详细信息,请参阅Object Literals部分中的传播。