Answers:
这是新的ES2015(正式名称为ES6的EcmaScript规范)计算的属性名称语法。这someObject[someKey]是您从ES3 / 5知道的任务的简写:
var a = "b"
var c = {[a]: "d"}
是用于以下方面的语法糖:
var a = "b"
var c = {}
c[a] = "d"
实际上,在创建JavaScript 对象时,的使用[]提供了一种使用变量的实际值作为键/属性的绝妙方法。
我对上述答案非常满意,对此我非常感激,因为它使我可以举一个小例子。
我已经在Node REPL(Node shell)上逐行执行了代码。
> var key = "fullName"; // Assignment
undefined
>
> var obj = {key: "Rishikesh Agrawani"} // Here key's value will not be used
undefined
> obj // Inappropriate, which we don't want
{ key: 'Rishikesh Agrawani' }
>
> // Let's fix
undefined
> var obj2 = {[key]: "Rishikesh Agrawani"}
undefined
> obj2
{ fullName: 'Rishikesh Agrawani' }
>
同样,只有[]在我们不知道评估或运行时会用什么的情况下,才可以使用符号来访问或分配对象中的东西。