Es ist schwierig, den Fall mit Worten zu erklären. Lassen Sie mich ein Beispiel geben:
var myObj = {
'name': 'Umut',
'age' : 34
};
var prop = 'name';
var value = 'Onur';
myObj[name] = value; // This does not work
eval('myObj.' + name) = value; //Bad coding ;)
Wie kann ich eine variable Eigenschaft mit variablem Wert in einem JavaScript-Objekt festlegen?
javascript
object
properties
set
Umut KIRGÖZ
quelle
quelle
myObj[prop] = value;
.eval('myObj.'+name)
funktioniert auch nicht, da die Variablename
nicht existiert.var
Tastaturen zum Deklarieren von Variablen verwenden, mehr Semikolons verwenden, nichteval
mehr Antworten verwenden und akzeptieren. Getan.myObj[name]
" geschrieben, wenn ich mir ziemlich sicher bin, dass Sie schreiben wollten "myObj[prop]
".Antworten:
Das sollte funktionieren. Sie haben den Namen der Variablen und ihren Wert verwechselt. Das Indizieren eines Objekts mit Zeichenfolgen, um seine Eigenschaften zu erhalten, funktioniert in JavaScript jedoch einwandfrei.
quelle
oder
Beide sind austauschbar.
Bearbeiten: Ich
myObj[prop] = value
vermute, Sie meinten , anstelle von myObj [Name] = Wert. Die zweite Syntax funktioniert einwandfrei: http://jsfiddle.net/waitinforatrain/dNjvb/1/quelle
name
wo Sie haben solltenprop
Sie können die Eigenschaft auf die gleiche Weise abrufen, wie Sie sie festgelegt haben.
Sie legen den Wert fest
foo["bar"] = "baz";
Um den Wert zu erhalten
foo["bar"]
wird "baz" zurückgeben.
quelle
Sie können auch etwas erstellen, das einem Wertobjekt (vo) ähnelt.
SomeModelClassNameVO.js;
Dann kannst du es einfach tun;
quelle
Wenn Sie ein Objekt
myObj
so erstellen, wie Sie es haben, stellen Sie es sich eher wie ein Wörterbuch vor. In diesem Fall hat es zwei Schlüsselname
, undage
.Sie können auf zwei Arten auf diese Wörterbücher zugreifen:
myObj[name]
); odermyObj.name
); Beachten Sie, dass einige Eigenschaften reserviert sind, daher wird die erste Methode bevorzugt.Sie sollten problemlos als Eigenschaft darauf zugreifen können. Um jedoch als Array darauf zugreifen zu können, müssen Sie den Schlüssel wie eine Zeichenfolge behandeln.
Andernfalls geht Javascript davon aus, dass
name
es sich um eine Variable handelt. Da Sie keine Variable mit dem Namen erstellt haben , kann Javascriptname
nicht auf den erwarteten Schlüssel zugreifen.quelle
myObj[name]
undmyObj.name
, da sich der erstere auf einen Variablennamen und der zweite auf einen Literalschlüssel bezieht.so einfach ist das
myObj.name = value;
quelle