如果未定义键,则将变量名作为 javascript 对象中的键

If key is not defined then variable name is taken as key in javascript object

让我们考虑下面的例子

a = [1,2]
c = {a, b: "Hello"}

chrome 开发工具中的输出

{
  "a": [
    1,
    2
  ],
  "b": "Hello"
}

这是怎么回事,创建这样的对象安全吗?

在对象字面量中,有两种输入元素的方法。

传统方式是key: value。在这种情况下, key 不被评估,它被视为文字,而 value 被评估。所以在你的 b: "Hello" 元素中,是否定义 b 并不重要,它总是创建键 "b".

EcmaScript 6 添加了一个 shorthand 符号,您只需在其中放置一个变量,例如 a 元素。这是a: a的简写,所以它使用变量的名称作为键,然后使用它的值作为值。在这种情况下,确实需要定义变量。

还有一些其他 shorthand 用于使用函数创建属性,请参阅 Enhanced Object Literals

至于它是否安全,请参阅 MDN 中的兼容性 table(其中还详细介绍了每个 shorthand 符号)。