javascript - 在对象文字({...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}
?
解决方案
这不是同一个对象。它制作对象自己的可枚举属性的浅表副本(例如Object.assign({}, object)
(MDN)。您可以在需要时使用它...一个具有对象自己的可枚举属性的副本。:-D
例如,对于多个 MVC 或类似库中的任何一个,您可以在更新状态时使用它,因为不应直接修改状态:
this.setState(oldState => ({...oldState, prop: "new value"}));
推荐阅读
- excel - 可以从不同的文件触发哪些 excel 触发器?
- ms-access-2013 - 更新 MS Access 2013 表单中的按钮
- java - 在json数组java中对json对象应用条件
- plesk - Plesk Git Deploy 未运行“其他部署操作”
- jvm - 如何使用已定义的 JVM 堆运行 Ignite
- c# - 我的 C# 统一脚本中的“对象引用未设置为对象上的实例”错误
- playframework - Flyway 迁移不在游戏框架项目中启动
- groovy - 在 SoapUI 中使用 POI 导入 Excel 文件时出错
- c++ - 无法理解 C++ 代码中 SIGTRAP 的原因
- azure-active-directory - Azure AD 中针对不同环境的应用注册---最佳实践