hi,
Und wie könnte ich dann den Inhalt der Variablen ändern, ohne dass ich die Objektreferenz wieder durch ein Textliteral überschreibe?
Entweder durch die Verwendung globaler Variablen, oder in dem du dir ein eigenes Objekt erzeugst - wird ja dann automatisch per Referenz übergeben, diesem dann Eigenschaften anhängst, und nur deren Werte veränderst.
Also in etwa so:
function test1() {
var stest = new Object();
stest.stringwert = "Test1";
window.alert(stest.stringwert);
test2(stest);
window.alert(stest.stringwert);
}
function test2(Bla) {
Bla.stringwert = "Juhu";
}
Das ist die etwas "feinere" Methode, als mit globalen Variablen - die man ja, wo möglich, vermeiden sollte.
Vom _Prinzip_ her ist aber beides auch wieder das gleiche:
Globale Variablen sind auf nur Objekteigenschaften - die des window-Objektes. Nur muss man da nicht jedes Mal window übergeben (das ist ja seinerseits schon überall global verfügbar) - und man muss auch nicht window.variablenname = "xyz" schreiben, sondern variablenname = "xyz" genügt - dass es im lokalen Scope keine Variable dieses Namens gibt, merkt der Interpreter selber, und hangelt sich dann "weiter nach oben", bis er bei window ankommt, und dort dann letztendlich eine Variable bzw. Eigenschaft mit diesem Namen vorfindet.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }