Chiave oggetto Javascript per parentesi quadre


109

Qualcuno può spiegare come funziona il perché / come funziona il seguente metodo di assegnazione delle chiavi in ​​JavaScript?

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

ritorno:

Object {b: "d"}

Risposte:


162

È la nuova sintassi del nome della proprietà calcolata ES2015 (la specifica EcmaScript formalmente nota come ES6) . È una scorciatoia per il someObject[someKey]compito che conosci da ES3 / 5:

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

è zucchero sintattico per:

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

27

In realtà l'uso di []offre un modo eccellente per utilizzare il valore effettivo della variabile come proprietà chiave durante la creazione di oggetti JavaScript ./

Sono praticamente soddisfatto della risposta di cui sopra e lo apprezzo perché mi ha permesso di scrivere questo con un piccolo esempio.

Ho eseguito il codice riga per riga su 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' }
>

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

const animal = 'lion';

const sound = 'roar';

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

Il risultato sarà

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

-1

Inoltre, unica condizione per utilizzare la []notazione per accedere o assegnare cose negli oggetti quando non sappiamo ancora cosa sarà fino alla valutazione o al runtime.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.