const myObject = { ...object1, ...object2 } 在 JS 中的计算结果是什么?

What does const myObject = { ...object1, ...object2 } evaluate to in JS?

我继承了 React Native 代码库中的一些代码,只是很好奇这种语法的含义。似乎无法通过谷歌搜索找到一个好的答案,但我有控制台记录它似乎是:

   const myObject = object2 ? ojbect2 : object1

类似于:

   const myObject = { ...object1, ...object2}

首先是逻辑运算符。

const myObject = object2 ? ojbect2 : object1

相当于:

const myObject = ()=>{if(object2){return object2}else{return object1}}

对于另一个,扩展语法,see this page 描述它是如何工作的。 它应该用于扩展内联对象以传递给任何其他对象 object/function.

这个const myObject = { ...object1, ...object2}被称为使用spread sysntax的对象的属性组合,因此您可以使用多个对象的属性创建对象。

例如,以下示例说明了函数 Object.assign 和传播语法的关系。

传播语法

let object1 = {
  "name": "Ele"
};

let object2 = {
  "from": "Stack"
};

const myObject = { ...object1, ...object2};
// Now myObject is a combination of the previous objects.
console.log(myObject);

Object.assign

let object1 = {
  "name": "Ele"
};

let object2 = {
  "from": "Stack"
};

const myObject = Object.assign({}, object1, object2);
// Now myObject is a combination of the previous objects.
console.log(myObject);