对象文字中属性名称周围的方括号是什么意思?

cad*_*alt 22 javascript ecmascript-6

我已经在JS写了一段时间并且没有使用过这种形式:

  dist: {
    files: {
      [bpr + 'lib/Monster.min.js']: ['<%= concat.dist.dest %>']
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

[]:[]
Run Code Online (Sandbox Code Playgroud)

它工作,我只是没有使用它或之前看过它.

Mat*_*att 37

最近才与ES6合作.它们被称为"计算属性名称"

来自MDN:

从ECMAScript 2015开始,对象初始化程序语法还支持计算属性名称.这允许您将表达式放在括号中[],该表达式将作为属性名称计算.


小智 6

在 ES6 中,方括号是使用计算密钥对时对象文字的一部分。

例如:-

问题 下面的字符串“key”乘以 5 生成一个名为“key”*5 的计算键,现在不使用方括号,这会导致语法错误

const newObject = {
    "key"*5:"value"
}
Run Code Online (Sandbox Code Playgroud)

解决方案 解决方案是在使用计算属性作为键之前使用方括号

const newObject = {
    ["key"*5]:"value"
}
Run Code Online (Sandbox Code Playgroud)

有关如何创建对象的更多参考,请查看此链接