Klucz obiektu Javascript w nawiasach kwadratowych


109

Czy ktoś może wyjaśnić, jak dlaczego / jak działa poniższa metoda przypisywania kluczy w JavaScript?

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

powrót:

Object {b: "d"}

Odpowiedzi:


162

Jest to nowa składnia obliczonych nazw właściwości ES2015 (specyfikacja EcmaScript, formalnie znana jako ES6) . To skrót someObject[someKey]zadania, które znasz z ES3 / 5:

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

jest cukrem syntaktycznym dla:

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

27

Naprawdę użycie []daje doskonały sposób wykorzystania rzeczywistej wartości zmiennej jako właściwości klucza podczas tworzenia obiektów JavaScript ./

Jestem zadowolony z powyższej odpowiedzi i doceniam ją, ponieważ pozwoliła mi napisać to na małym przykładzie.

Wykonałem kod linia po linii na Node REPL (powłoka węzła).

> 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' }
>

6
const animalSounds = {cat: 'meow', dog: 'bark'};

const animal = 'lion';

const sound = 'roar';

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

Wynik będzie

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

-1

Jedynym warunkiem jest użycie []notacji do uzyskiwania dostępu lub przypisywania rzeczy w obiektach, gdy nie wiemy jeszcze, co to będzie do czasu oceny lub uruchomienia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.