Kann jemand erklären, wie das Warum / Wie die folgende Methode zum Zuweisen von Schlüsseln in JavaScript funktioniert?
a = "b"
c = {[a]: "d"}
Rückkehr:
Object {b: "d"}
quelle
Kann jemand erklären, wie das Warum / Wie die folgende Methode zum Zuweisen von Schlüsseln in JavaScript funktioniert?
a = "b"
c = {[a]: "d"}
Rückkehr:
Object {b: "d"}
Es ist die neue ES2015 (die EcmaScript-Spezifikation, die früher als ES6 bekannt war), die Syntax für berechnete Eigenschaftsnamen . Es ist eine Abkürzung für die someObject[someKey]
Aufgabe, die Sie aus ES3 / 5 kennen:
var a = "b"
var c = {[a]: "d"}
ist syntaktischer Zucker für:
var a = "b"
var c = {}
c[a] = "d"
Wirklich die Verwendung []
gibt eine hervorragende Möglichkeit , tatsächlichen Wert der Variablen zu verwenden Schlüssel /
Eigenschaft während JavaScript Erstellen Objekte .
Ich bin ziemlich zufrieden mit der obigen Antwort und ich schätze sie, da ich sie mit einem kleinen Beispiel schreiben konnte.
Ich habe den Code zeilenweise auf Node REPL (Node Shell) ausgeführt.
> 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' }
>
const animalSounds = {cat: 'meow', dog: 'bark'};
const animal = 'lion';
const sound = 'roar';
{...animalSounds, [animal]: sound};
Das Ergebnis wird sein
{cat: 'meow', dog: 'bark', lion: 'roar'};
Außerdem muss nur die []
Notation für den Zugriff auf oder das Zuweisen von Objekten in Objekten verwendet werden, wenn wir bis zur Auswertung oder Laufzeit noch nicht wissen, wie es aussehen wird.