Re!
ich wollte eigentlich keinen mehr draufsetzen, aber irgentwie habe ich den Eindruck, Du verstehst mich gut:
Ich finde Thread-Drifts gut. :-)
Das mit der automatischen Typumwandlung macht zwar einiges einfacher...aber ich find's auch bekloppt. Wenn man ein paar Postings weiter früher (unten) guckt, gibt es auch zu viele Probleme damit:
Marfi:(JAVASCRIPT) mit Variablen rechnen http://www.teamone.de/selfaktuell/forum/?m=145205&t=27856
Ja, und das ist eine der meistgestellten Fragen hier im Forum.
ABER: Mit dieser global-Geschichte innerhalb einer Funktion...sehe ich anders.
Ich habe damit eben genau die Möglichkeit dynamisch irgentwelche Variablen zu erzeugen.
[...]
Klar hat das auch seine Vorteile - unwidersprochen. Dein Beispiel laesst sich aber auch leicht anders realisieren, da JS assoziative Arrays kennt. Deklariert man einen Container, der z.B. alle globalen Variablen aufnehmen soll:
var globals = [ ]; /* <==> var globals = new Array(); */
dann kann man dynamisch mit
var tmp;
globals["menu_1"] = [ ];
tmp = globals["menu_1"]["mouseoverimg"] = new Image();
tmp.src = "/images/...gif";
usw. sehr schoen seine dynamischen Daten aufbauen. Dann kann man z.B. einen kompletten "Unterzweig" an eine Funktion uebergeben:
funktion(globals["menu_1"]);
die dann mit arg["mouseoverimg"].src in immer gleicher Weise darauf zugreifen kann. Alles sehr fein, und ganz ohne eval(). ;-)
Genaugenommen werden globale Variablen und Funktionen uebrigens einfach als Eigenschaften des window-Objekts abgelegt. Damit werden dann Konstruktionen wie parent.framename.funktion() moeglich (parent.framename ist ja auch ein window-Objekt). Somit wird also mit window genau das getan, was ich oben mit globals gemacht habe. Nur werden hier die neuen Variablen eben mit den Eigenschaften und Methoden von window durcheinandergewuerfelt, wobei man durchaus auch mal eine aus Versehen ueberschreiben kann, wenn man nicht aufpasst. (Und welche Eigenschaften schon existieren, ist browserabhaengig!) Und das ist meines Wissens nicht dokumentiert, was logisch scheint, da JS ja auch in Umgebungen eingesetzt werden kann, wo es kein window-Objekt gibt. Insofern kann man sich also auch nicht drauf verlassen, dass das ueberhaupt in allen Browsern so funktioniert.
Naja, ich hoffe, es war irgentwie interessant. :S
Ich auch. ;-) Wie gesagt, ich mag Thread-Drifts.
So long
P.S. So, jetzt aber raus in die Sonne.