如何将对象作为字段添加到JavaScript中的另一个现有对象

时间:2019-04-05 05:47:03

标签: javascript

我是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'
  }
}

到目前为止我尝试过的事情:

  1. originalObj.newObj = newObjoriginalObj['newObj'] = newObj

结果是:

orginalObj = {
      id: 1,
      name: 'originalObj',
      newObj: 
    }  
  1. Object.assign(originalObj, newObj) 这样会将newObj的所有字段添加到与originalObj相同的级别上。如下所示:

    originalObj = {       编号:1       名称:“ originalObj”,       newId:2       名称:“ newObj”   }

3 个答案:

答案 0 :(得分:1)

取决于您是否想要深拷贝或仅参考。

originalObj.newObj = newObj;将为newObj分配一个引用,其中as

originalObj.newObj = Object.assign({}, newObj);将创建一个新的

注意:如果您使用的是ECMAScript 2015(第6版,ECMA-262),则可以使用扩展运算符...

originalObj.newObj = {...newObj};

示例:https://jsbin.com/yisiyip/edit?js,console

答案 1 :(得分:0)

maxAllowedContentLength

这里发生的事情是您通过简写方法将originalObj的值与newObj的值一起传播到一个空对象中

参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

答案 2 :(得分:0)

originalObj.newObj = newObj; //这应该可以完成

in console it looks like this