不需要明确定义键名来创建JavaScript对象?

4
今天我看到了一段我从未见过的代码:
var a = 1;
var b = 2;
var c = { a, b };

这将创建一个对象(分配给 c),其中包含两个键,这些键是变量的名称,值是变量的值,就像这样:
{
    a: 1,
    b: 2
}

这是正常的吗?我找不到任何相关的信息或者使用这种方式创建对象。我在Chrome上测试过,它可以正常工作,但我不确定这种方法是否适用于所有浏览器。

我期望这样创建对象:

var c = { a: a, b: b };

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring 上有一些例子。 - Vijay Dev
我相信这个问题已经被问过了。谁能找到原始的问题? - nicael
@nicael 你呢? :D - Pablo Matias Gomez
1
是的,我做到了! :D - nicael
1个回答

8
这是ES6对象简写的一部分,您可以使用当前作用域中的变量来声明对象(字面意义上)中具有相同名称和值的属性。
也就是说,c = {a, b}扩展为c = {a: a, b: b},只要ab都在当前作用域中。
MDN文档在此处提供更多详细信息

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接