JavaScript gibt Ihnen viele Möglichkeiten, Objekte zu deklarieren. Wenn Sie die meisten der verfügbaren Daten zur Hand haben, ist die bequemste (meiner Meinung nach) wie folgt:JavaScript-Objektdeklarationssyntax - Variablennamen als Eigenschaften
var person = {
name: 'John',
age: 23
}; // "object literal syntax"
Eine merkwürdige Sache über diese Syntax ist, dass es zu dieser identisch ist:
var person = {
'name': 'John',
'age': 23
}; // "object literal syntax"
Das heißt, Sie können Anführungszeichen verwenden oder sie für die Eigenschaftsnamen weglassen.
Wenn das die Art und Weise zu vergleichen eine einzige Eigenschaft Werkseinstellung, haben Sie zwei Möglichkeiten:
person.birthday = "January 12"; // "dot syntax"
oder
person['birthday'] = "January 12"; // "array syntax"
Die „Punktsyntax“ funktioniert nur, wenn der rechte Operand die tatsächlichen ist Name des Anwesens. Wenn Sie eine Variable für den Eigenschaftsnamen verwenden möchten, müssen Sie „Array-Syntax“, das heißt:
var prop = "birthday";
person[prop] = "January 12";
Jetzt ist es möglich, eine Variable für den Eigenschaftsnamen in der „Objektliteral Syntax“ zu verwenden, ? Da es keine Rolle spielt, wenn Sie die Eigenschaftsnamen angeben, scheint es keine offensichtliche Möglichkeit zu geben, eine Variable dort zu verwenden. Ich bin auf der Suche nach so etwas wie folgt aus:
var prop = "birthday";
var person = {
name: 'John',
age: 23,
(prop): 'January 12'
};
Hier bin ich mit (prop) als imaginäre Syntax verwendet, um auszudrücken, dass dies eine Variable und nicht um eine Zeichenkette.
Danke.
Ich denke, Sie werden auf die Array-Syntax haften haben .. vielleicht eval (+ prop +‘=„12. Januar "') wird den Trick machen, aber ich denke nicht, dass dies die optimale Lösung ist –
@PhilippeBoissonneault - Ack! Eval wird * nicht * benötigt ... bitte benutze es nicht in diesem Zusammenhang. –
Sie suchen nach dem Äquivalent der PHP-Variablen: '$ foo = bar; $ bar = '123'; echo $$ foo; // zeigt tatsächlich '123' 'an – Ray