在没有明确定义键的情况下创建Javascript对象?

Pab*_*mez 4 javascript object

今天我看到了一段我以前从未见过的代码:

var a = 1;
var b = 2;
var c = { a, b };
Run Code Online (Sandbox Code Playgroud)

这会创建一个对象(分配给c),它包含两个键,它们是变量的名称,值是变量的值,如下所示:

{
    a: 1,
    b: 2
}
Run Code Online (Sandbox Code Playgroud)

这是正常的吗?我找不到与此相关的任何内容或以这种方式创建对象.我在chrome上测试了它并且它被罚了,但我不确定这是否适用于每个浏览器.

我希望以这种方式创建对象:

var c = { a: a, b: b };
Run Code Online (Sandbox Code Playgroud)

ssu*_*ube 8

这是ES6对象速记的一部分,您可以使用当前作用域中的变量来声明对象(文字)中的属性,该属性具有与该变量相同的名称和值.

也就是说,只要c = {a, b}扩展到当前范围并且都在当前范围内.c = {a: a, b: b}ab

MDN文档在此处详细介绍.