对象属性名称的箭头函数的简写

Dud*_*ude 3 javascript ecmascript-6

当我有:

const foo = 1;
Run Code Online (Sandbox Code Playgroud)

我可以设置对象属性名称的简写

const bar = {foo}
Run Code Online (Sandbox Code Playgroud)

就像那样

const bar = {foo: foo} // bar will be {foo: 1}
Run Code Online (Sandbox Code Playgroud)

当我有一个带箭头功能的const时,有没有简写?

const foo = () => 1
Run Code Online (Sandbox Code Playgroud)

我必须像这样设置它,但它不酷

const bar = {foo: foo()}
Run Code Online (Sandbox Code Playgroud)

我想这样或者更短的东西

const bar = {foo()}  //bar should be {foo: 1} but this will fail
Run Code Online (Sandbox Code Playgroud)

pus*_*kin 6

看看规格,没有这方面的语法.

在此输入图像描述

在你的情况下ObjectLiteral必须解决{ PropertDefinitionList },必须解决PropertyDefinition.现在可能PropertyDefinition是什么?

它不可能IdentifierReference- 这是你的第一个例子:{f}.

CoverInitializedName也不适合.这看起来像{f = AssignmentExpression}这里AssignmentExpression定义的地方.

PropertyName: AssignmentExpression 是传统的语法: {f: 1}

MethodDefinition让你这样做{f(){ return 1; }};,但那又不是你想要的.

看起来判决结果是否定的.