Hallo,
Aber wie geht das in Javascript?
Das geht nicht in JavaScript. Alles wird immer als Wert übergeben. Man kann nur Werte übergeben, keinen Referenzen auf Variablen, deren Wert man dann ändern könnte.
Was allerdings geht ist die Übergabe von Objekten. Diese werden als Referenz auf eine Speicherstelle übergeben, d.h. wenn du ihre Eigenschaften änderst, so verweisen andere Variablen außerhalb auf dasselbe, geänderte Objekt.
var obj = { x: 1 };
function changeX (obj) {
obj.x = 2;
}
changeX(obj);
alert(obj.x);
Vielleicht hilft dir das weiter.
Generell hat eine Funktion Zugriff auf alle Variablen des äußeren Scopes, d.h. in deinem Beispiel musst du die Variable nicht übergeben, du hast in der verschachtelten Funktion ohnehin darauf Zugriff:
var obj = { x: 1 };
function changeX () {
obj.x = 2;
}
changeX();
alert(obj.x);
Mathias