{... object,property:value}如何与扩展语法一起工作?

在回顾ES6文档时,我注意到建议在更详细的Object.assign()方法上使用扩展语法。 但是,对于如何实现这一点,我有点困惑。

在这种情况下, object被分解为key: value对,之后逗号右侧的属性被添加或覆盖,最后被重新组合?


在这种情况下,对象被分解为key:value对,之后逗号右侧的属性被添加或覆盖,最后被重新组合?

原始对象object的键值对实际上与具有额外属性var2的新对象(它们正在与newObject结合)组合使用(合并)。

您可以将它想象为,在使用扩展语法的地方, object正在成为newObject的子集,而具有相同键的属性被覆盖。

检查下面的例子:

const object = { txt: 'Test' };
const newObject = {...object, var2: 'aa' };

// logs Object {txt: "Test", var2: "aa"}
console.log(newObject);

const object2 = { txt: 'Test' };
const newObject2 = {...object, txt: 'Test2', var2: 'aa' };

// Object {txt: "Test2", var2: "aa"}
console.log(newObject2);

// merging all objects to a new object
var object3 = {first: 'Hello', second: 'World'};
var newObject3 = {...object, anotherVar: 'stack', ...object2, ...object3};

// Object {txt: "Test", anotherVar: "stack", first: "Hello", second: "World"}
console.log(newObject3);
链接地址: http://www.djcxy.com/p/38813.html

上一篇: How does {...object, property: value} work with spread syntax?

下一篇: Is there a way to check if a file is in use?