Clé d'objet Javascript crochets carrés


109

Quelqu'un peut-il expliquer comment fonctionne le pourquoi / comment la méthode ci-dessous d'attribution de clés en JavaScript?

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

revenir:

Object {b: "d"}

Réponses:


162

Il s'agit de la nouvelle syntaxe de nom de propriété calculée ES2015 (la spécification EcmaScript formellement connue sous le nom de ES6) . C'est un raccourci pour la someObject[someKey]mission que vous connaissez de ES3 / 5:

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

est un sucre syntaxique pour:

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

27

En réalité, l'utilisation de []donne un excellent moyen d'utiliser la valeur réelle de la variable comme propriété clé lors de la création d' objets JavaScript ./

Je suis assez satisfait de la réponse ci-dessus et je l'apprécie car elle m'a permis d'écrire ceci avec un petit exemple.

J'ai exécuté le code ligne par ligne sur 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};

Le résultat sera

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

-1

De plus, seule condition pour utiliser la []notation pour accéder ou affecter des éléments aux objets lorsque nous ne savons pas encore ce que cela va être jusqu'à l'évaluation ou à l'exécution.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.