对象字面量中的属性名周围加上方括号是什么意思?

41

我已经使用JS写了一段时间,但还没有使用过这种形式:

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

这个

[]:[]

它能够工作,只是我之前没有使用过或者见过它。


1
抱歉,我没有说环境,我是从命令行使用Grunt,并且这是grunt使用的Gruntfile.js。我需要一个基于变量的键,所以我尝试了一下,它起作用了。但答案是,是的,这是正确的JavaScript ES6,但不适用于ES5。 - cade galt
我读了一篇关于 ES6 的文章,这可能应该被提到 ES6 提供的前五个新特性中。非常优秀。 - cade galt
@cadegalt,您能否在您的问题中添加有关此代码可以运行的信息? - CoderPi
2个回答

58

只是最近才有 ES6 引入了“计算属性名”。

来自 MDN

从 ECMAScript 2015 开始,对象初始化语法也支持计算属性名。它允许您将表达式放在方括号 [] 中,该表达式将作为属性名进行计算。


6
在ES6中,当使用计算键对时,方括号是对象字面量的一部分。
例如: 问题 以下字符串“key”乘以5,生成一个名为“key*5”的计算键,如果不使用方括号,将导致语法错误。
const newObject = {
    "key"*5:"value"
}

解决方案 在使用计算属性作为键时,解决方案将是在其前面使用方括号。

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

要了解如何创建对象的更多参考,请查看此链接


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