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

IT技术 javascript ecmascript-6
2021-02-01 14:46:56

用JS写了一段时间,没用过这种形式:

  dist: {
    files: {
      [bpr + 'lib/Monster.min.js']: ['<%= concat.dist.dest %>']
    }
  }
}

[]:[]

它有效,我只是没有使用过或以前看过它。

2个回答

直到最近才使用 ES6。它们被称为“计算属性名称”

来自MDN

从 ECMAScript 2015 开始,对象初始值设定项语法也支持计算属性名称。这允许您将表达式放在括号中[],该表达式将被计算为属性名称。

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

例如:-

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

const newObject = {
    "key"*5:"value"
}

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

const newObject = {
    ["key"*5]:"value"
}

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