Heim > Web-Frontend > js-Tutorial > Warum lässt JavaScript dynamische Objektschlüssel nicht direkt in Objektliteralen zu?

Warum lässt JavaScript dynamische Objektschlüssel nicht direkt in Objektliteralen zu?

Patricia Arquette
Freigeben: 2024-12-30 21:48:15
Original
900 Leute haben es durchsucht

Why Doesn't JavaScript Allow Dynamic Object Keys in Object Literals Directly?

JavaScript-Objektschlüssel aus Variablenrätsel

Bei der Verwendung von Objektliteralen in JavaScript kann es zu einem eigenartigen Verhalten kommen, wenn Sie einer Dynamik eine Variable zuweisen Der Eigenschaftsschlüssel funktioniert nicht. Betrachten Sie diese beiden Codefragmente:

<something>.stop().animate({ 'top': 10 }, 10); // Works
var thetop = 'top';
<something>.stop().animate({ thetop: 10 }, 10); // Doesn't work
Nach dem Login kopieren

Warum die Diskrepanz?

Das erste Snippet setzt erfolgreich die „top“-Eigenschaft eines Objekts unter Verwendung der Punktnotation. Das zweite Snippet schlägt jedoch fehl, da JavaScript die Verwendung von Variablen zum Definieren dynamischer Objekteigenschaftsnamen direkt in Objektliteralen nicht zulässt.

Lösung in ES5 und früher

Zur dynamischen Zuweisung Eigenschaftsnamen aus Variablen in ES5 und früher müssen Sie das Objektliteral manuell erstellen:

var thetop = "top";
var aniArgs = {};
aniArgs[thetop] = 10; // Assign value to variable property name
<something>.stop().animate(aniArgs, 10);
Nach dem Login kopieren

Lösung in ES6 und später

ES6 führte „ComputedPropertyName“ in die Objektliteralgrammatik ein und ermöglichte die direkte Zuweisung dynamischer Eigenschaftsnamen aus Variablen:

var thetop = "top",
    obj = { [thetop]: 10 };
console.log(obj.top); // -> 10
Nach dem Login kopieren

Diese Syntax wird in den neuesten Versionen von unterstützt Hauptbrowser.

Das obige ist der detaillierte Inhalt vonWarum lässt JavaScript dynamische Objektschlüssel nicht direkt in Objektliteralen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage