ES6对象速记符号可以与常规对象表示法结合使用吗?

时间:2016-03-25 00:17:15

标签: javascript ecmascript-6

使用ES6,我们现在可以利用对象简写符号来创建对象......

var a = 1, b = 2, c = 3;
var obj = { a, b, c };

是否可以将速记符号与常规符号结合使用?

换句话说,以下是否合法?

var obj = {a, b, c, d: 'foo'};

如果是的话,我应该注意哪些问题?

2 个答案:

答案 0 :(得分:8)

  

是否可以将速记符号与常规符号结合使用?

是。属性定义可以是以下任何一种:

PropertyDefinition :
    IdentifierReference
    CoverInitializedName
    PropertyName : AssignmentExpression
    MethodDefinition

来源:ECMAScript 2015 Language Specification

  

如果是的话,我应该注意哪些问题?

不。

答案 1 :(得分:1)

根据巴贝尔的说法是

See transpiled code results

Babel 翻译此

var a = 1, b = 2, c = 3;
var obj = {a, b, c, d: 'foo'};

es5

中的

var a = 1,
b = 2,
c = 3;

var obj = { a: a, b: b, c: c, d: 'foo' };

Luke Hoban也发现github repo显示正在创建的混合对象