Réponses:
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"
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' }
>
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.