Подтвердить что ты не робот

Квадратные скобки Ключ объекта Javascript

Может ли кто-нибудь объяснить, как и почему/как работает метод присвоения ключей в javascript ниже?

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

Возврат:

Object {b: "d"}
4b9b3361

Ответ 1

Это новый ES2015 (спецификация EcmaScript, формально известная как ES6) синтаксис вычисленного имени свойства. Это сокращение для назначения someObject[someKey], которое вы знаете из ES3/5:

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

- синтаксический сахар для:

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

Ответ 2

Действительно использование [] дает отличный способ использовать фактическое значение переменной в качестве ключа / свойства при создании объектов JavaScript.

Я в значительной степени удовлетворен приведенным выше ответом и ценю его, поскольку он позволил мне написать это с небольшим примером.

Я выполнил код построчно на узле REPL (оболочка узла).

> var key = "fullName";     // Assignment
undefined
>
> var obj = {key: "Rishikesh Agrawani"}    // Here key value will not be used
undefined
> obj     // Inappropriate, which we don't want
{ key: 'Rishikesh Agrawani' }
>
> // Let fix
undefined
> var obj2 = {[key]: "Rishikesh Agrawani"}
undefined
> obj2
{ fullName: 'Rishikesh Agrawani' }
>