方括号 Javascript 对象键

IT技术 javascript ecmascript-6
2021-02-02 05:50:35

任何人都可以解释下面在 JavaScript 中分配键的方法是如何工作的吗?

a = "b"
c = {[a]: "d"}

返回:

Object {b: "d"}
4个回答

它是新的 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' }
>
const animalSounds = {cat: 'meow', dog: 'bark'};

const animal = 'lion';

const sound = 'roar';

{...animalSounds, [animal]: sound};

结果将是

{cat: 'meow', dog: 'bark', lion: 'roar'};

此外,只有[]在评估或运行时我们还不知道它将是什么时,才能使用符号来访问或分配对象中的内容。