• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Lokale Variable in 2 Funktionen verwenden

  • Ersteller Ersteller htmltyp
  • Erstellt am Erstellt am
H

htmltyp

Guest
Hallo liebes Forum!

Ich habe, vereifacht gesehen, 2 Funktionen:

Code:
function SetVarA()
{
a=5;
}

function AddB()
{
b=5;
c = a + b;
}

Wie bekomme ich jetzt die lokale Variable aus der Funktion SetVarA in die Funktion AddB?
 
Das müsst ihr mir mal erklären wieso das funktioniert?
Ich habs bei mir genau so ausprobiert und es funktioniert nur im ersten Fall.
Und das hätte folgende Erklärung:
Wenn man kein 'var' vor der Variable angibt, so wird die Variable nicht unter dem aktuellen Kontext angelegt sondern im window-Kontext.
Man könnte genau so gut folgendes schreiben
Code:
function doA() {
             window.a = 2;
         }
        
         function doB() {
             window.b = 5;
            window.c = window.a + window.b;
         }

Da das Window Objekt überall zu erreichen ist, würde das ganze auch funktionieren.
Meine These habe ich auch mit Firebug nachgeprüft.
Jetzt kommt für mich das mysterium, wieso es bei euch umgekehrt funktioniert :D
Da dürfte mir mal wer auf die Sprünge helfen :)
 
Das frage ich mich auch; das kann gar nicht funktionieren, weil a im Rumpf von AddB() nicht definiert ist.
 
Das var-Schlüsselwort deklariert eine Variable als global. S.a. JavaScript: Globale und lokale Variablen definieren - Matthias Schütz

Nur wenn es ausserhalb von Funktionen benutzt wird.
Um zu beweisen, dass innerhalb einer Funktion die Variable im Scope registriert wird und nicht global verwende mal diesen Code.

Code:
    function sayA() {
        var a= 15;
    }
    
    function sayB() {
        alert(a);
    }
    
    sayA();
    sayB();

Und etwas anderes steht auch in auf der Seite, die du gepostest hast
 
Ich habe var auch immer außerhalb von Funktionen benutzt, wusste daher nicht ob es innerhalb nicht funktioniert.

Mein Fehler - sorry.
 
Zusammenfassend: Die Fragestellung war schon Unsinn:
Ich habe, vereifacht gesehen, 2 Funktionen:

Code:
function SetVarA()
{
a=5;
}

function AddB()
{
b=5;
c = a + b;
}

Wie bekomme ich jetzt die lokale Variable aus der Funktion SetVarA in die Funktion AddB?
In dem Beispiel ist die Variabel nicht lokal und in AddB() verfügbar.
 
Zurück
Oben