我是JS新手,正在尝试对JS对象进行基本操作。
我有以下对象:
var originalObj = {
id: 1,
name: 'originalObj'
}
现在,我想向
originalObj
添加另一个对象作为字段。var newObj = {
newId: 2,
name: 'newObj'
}
因此,预期结果是:
orginalObj = {
id: 1,
name: 'originalObj',
newObj: {
newId: 2,
name: 'newObj'
}
}
到目前为止我尝试过的是:
originalObj.newObj = newObj
和originalObj['newObj'] = newObj
结果是:
orginalObj = {
id: 1,
name: 'originalObj',
newObj:
}
Object.assign(originalObj, newObj)
这会将
newObj
的所有字段添加到与originalObj
相同的级别。如下所示:originalObj = {
编号:1
名称:“ originalObj”,
newId:2
名称:“ newObj”
}
最佳答案
取决于您是否想要深拷贝或仅参考。originalObj.newObj = newObj;
将为newObj分配一个引用,其中originalObj.newObj = Object.assign({}, newObj);
将创建一个新的。
注意:如果您使用ECMAScript 2015(第6版,ECMA-262),则可以使用传播运算符...
originalObj.newObj = {...newObj};
示例:https://jsbin.com/yisiyip/edit?js,console