首页 > 解决方案 > 在对象文字({...object})中传播语法有什么用途?

问题描述

我已经阅读了关于I don't understand about spread syntax inside objects但仍然不太了解 using (specifically) 的目的的答案{...object}

服务于什么目的{...object}

我已经在节点 REPL 中对此进行了测试,假设我创建了一个对象:

> const object = { foo: "hello", bar: "world" };

并在新对象字面量中使用扩展运算符来引用它:

> { ...object }
{ foo: 'hello', bar: 'world' }

输出与仅使用对象本身相同:

> object
{ foo: 'hello', bar: 'world' }

服务于什么目的{...object}

标签: javascriptspread-syntax

解决方案


这不是同一个对象。它制作对象自己的可枚举属性的浅表副本(例如Object.assign({}, object)MDN)。您可以在需要时使用它...一个具有对象自己的可枚举属性的副本。:-D

例如,对于多个 MVC 或类似库中的任何一个,您可以在更新状态时使用它,因为不应直接修改状态:

this.setState(oldState => ({...oldState, prop: "new value"}));

推荐阅读