molily: dynamische Variablen und Methoden

Beitrag lesen

Hallo,

Dazu ist wohl die funktion eval() gedacht. Ich habe genau das was du machen willst erst letzten im JavaScript Buch gelesen

Aaaah, bitte nicht. Dieses Buch ist in vielerlei Hinsicht fehlerhaft und veraltet, daher mit Vorsicht zu genießen. Isbesondere dieser Absatz ist Unsinn und stellt eine übliche, aber gänzlich unvernünftige Anwendung von eval() vor. Genau für solche Anwendungen ist eval() weder gedacht noch gut geeignet.

Erstmal, wenn ich die Monatsnamen speichern will, nehme ich sinnigerweise einen Array und nicht 12 einzelne Variablen. Auf die Arrayelemente kann ich dann ganz einfach ohne eval() zugreifen.

Wenn ich aber unbedingt zwölf Einzelvariablen will, brauche ich eval() trotzdem nicht. Jede globale Variable ist ein Member des window-Objektes, und Unterobjekte kann man immer sowohl über die Punkt-Schreibweise objekt.unterobjekt als auch über die Klammer-Schreibweise objekt["unterobjekt"] ansprechen. Also kann ich window["monat" + m] statt eval("monat" + m) schreiben (wenn es sich um eine globale Variable handelt). Das ist viel performanter (Efficient JavaScript: Avoid using eval or the Function constructor).

Mathias

--
»No nations, no borders.«
SELFHTML Weblog