在声明 es2018 期间内联扩展运算符
Posted
技术标签:
【中文标题】在声明 es2018 期间内联扩展运算符【英文标题】:inlining spread operator during declaration es2018 【发布时间】:2018-04-28 11:23:03 【问题描述】:我想做这样的事情:
const translations =
en:
statistics_title: 'Statistics'
,
ru:
statistics_title: 'Статистика'
,
uk:
...ru
显然它不起作用,当然,我可以设置另一个const,然后使用它但我很懒)所以我很好奇javascript是否允许你这样做?
【问题讨论】:
不,你不能这样做,因为对象还不存在。 扩展属性不是 ES6 的一部分。 【参考方案1】:你不能在对象中自我引用,除非它是一种方法。
你可以这样做:
const translations =
en:
statistics_title: 'Statistics'
,
ru:
statistics_title: 'Статистика'
,
get uk ()
return this.ru
编辑
如果您不希望 translations.uk
成为 ru
的副本并以这种方式保存它自己的数据是行不通的。这只是将translations.uk
设置为对translations.ru
的引用
【讨论】:
【参考方案2】:你必须在传播之前声明这个ru
值,即:
const ru =
statistics_title: 'Статистика'
;
const translations =
en:
statistics_title: 'Statistics'
,
ru,
uk:
...ru
;
【讨论】:
谢谢,Getter 很有意义,因为您在对象实例化之后调用它。以上是关于在声明 es2018 期间内联扩展运算符的主要内容,如果未能解决你的问题,请参考以下文章