小编jee*_*efo的帖子

ECMA-2015 语法语法中的 CoverInitializedName[yield] 是什么

我正在编写自己的 ES6 解析器。但我不明白 ObjectLiteral 中的 CoverInitializedName 是什么。

ECMA-2015 ObjectLiteral 规范中关于此的部分中,我看到

PropertyDefinition[Yield] :
    IdentifierReference[?Yield]
    CoverInitializedName[?Yield] <-- this is what I dont understand
    PropertyName[?Yield] : AssignmentExpression[In, ?Yield]
    MethodDefinition[?Yield]
Run Code Online (Sandbox Code Playgroud)

然后我查找 CoverInitializedName 的定义。

CoverInitializedName[Yield] :
    IdentifierReference[?Yield] Initializer[In, ?Yield]

IdentifierReference[Yield] :
    Identifier
    [~Yield] yield

Initializer[In, Yield] :
    = AssignmentExpression[?In, ?Yield]
Run Code Online (Sandbox Code Playgroud)

初始值设定项以 = 符号开头。

这意味着我可以使用这样的赋值运算符来分配属性。

let o = { prop = value };
Run Code Online (Sandbox Code Playgroud)

如果我执行此代码,它将抛出 SyntaxError: Invalid shorthand property initializer

我感到困惑并查看了MDN 对象初始值设定项文档。 哪有这回事。那么这个 CoverInitializedName 是什么?

[编辑]

loganfsmyth的回答是

({ prop = value } = …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

5
推荐指数
1
解决办法
109
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1