如何在Chrome开发工具中使用对象扩展语法

18

我开始使用对象扩展语法,以安全地复制对象并遵循不可变性原则。

我想在Chrome开发者控制台中使用它 - 如何操作:

输入图片描述


2
Object.assign() 会对对象进行浅拷贝。 - jfriend00
4
...不是一个运算符。 - Felix Kling
5
对象展开是一个提案,目前在Chrome的稳定版本中不可用。 - Felix Kling
3个回答

19

你可以在chrome://flags/#enable-javascript-harmony上启用JavaScript实验标志,以启用网页使用实验性的JavaScript功能,包括Rest / Spread特性。


我开始学习ES7了- 如果我打开这个标志,我能在Chrome Dev控制台中使用ES7功能吗? - Probosckie

5

对象展开符在所有现代浏览器中都可用(自Chrome 60版本起),可以像这样使用:

{...{foo: 'bar'}, john: 'doe'}

并将返回:{foo: "bar", john: "doe"}


@Aequitas 对我来说可以运行。尝试这个:{...{foo: 'bar'}} - sqren
啊,我的错,是数组展开不起作用(有时候):let a = ...['foo'],会出现意外的标记错误。但是 console.log(...['foo']) 就可以正常工作。 - Aequitas
1
@Aequitas 你必须将其扩展到另一个数组中:[...['foo'], 'bar'] - sqren

-2

...不是运算符(至少不是ECMAScript规范中所使用的“运算符”的意义)。它实际上被称为“扩展语法”或“剩余语法”。


1
compat-table 表明 Chrome 58 支持对象展开,但需要使用标志来启用。 - Vladimir Starkov
1
chrome://version 显示当前 Windows 官方版本为 55.x。可能需要安装金丝雀版本来尝试此功能。 - Probosckie
5
@Robsonsjre,请尽力更加友好。如果OP提到“...”作为一个运算符,不要只是说它不是运算符。你可以说它实际上被称为“扩展语法”或“剩余语法”,并提供一些参考资料/文章。另一方面,却只提供了一些含糊不清的信息。它在稳定版本的Chrome中不存在,但可以通过标志启用它。 - Neithan Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接