gpt4 book ai didi

javascript - 速记属性名和计算属性名可以同时使用吗?

转载 作者:行者123 更新时间:2023-11-30 07:51:55 31 4
gpt4 key购买 nike

是否可以将速记属性名称 (ES2015) 与计算属性名称(也是 ES2015)结合使用?例如……

const a = 'foo';
const o = {
[a],
}
> o
> {
"foo": "foo"
}

最佳答案

不,这是不可能的。 grammar for ES2015 Object Initializers不允许计算属性名称与简写一起使用。具体来说,ObjectLiteralPropertyDefinitionList 组成。 PropertyDefinitionListPropertyDefinition 组成:

12.2.6 Object Initializer

Syntax

ObjectLiteral :
{ }
{ PropertyDefinitionList }
{ PropertyDefinitionList, }

PropertyDefinitionList :
PropertyDefinition
PropertyDefinitionList, PropertyDefinition

PropertyDefinition :
IdentifierReference
CoverInitializedName
PropertyName : AssignmentExpression
MethodDefinition

支持对象文字中计算属性的特定语法是 PropertyName : AssignmentExpression,因为 PropertyName 已定义作为:

PropertyName :
LiteralPropertyName
ComputedPropertyName

因此,语法仅支持 [computedProperty]: value,因为只有 PropertyName : AssignmentExpression 是语法的一部分,而不是 PropertyName 本身。

关于javascript - 速记属性名和计算属性名可以同时使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315080/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com