2016-04-20 9 views
-3

Wenn ich habe eine Funktion, dieWie wird die Variable in Javascripts beim Funktionsaufruf behandelt?

var test = 3; 

    function looper(){ 

    var testing = 1; 
    testing += testing; 

    } 

    for (var i=0;i<=10,i++){ 

    looper(); 

    alert(test); 

    } 

, wenn diese Funktion wurde in einer Schleife zum Beispiel darin bestimmte Variable genannt wird, wird jeden Testwert als 2 erhalten oder es ist die Aktualisierung ausgeführt Wert dauern? neben kann ich den Wert der Testvariablen erhalten, die in die Funktion übergeben wird oder es als Parameter übergeben muss?

+0

'var' Variablen sind Funktionsbereiche. – Oriol

+0

Alter zuerst ändern Sie Ihre für (var i = 0; i <= 10, i ++) Sie haben ein Komma ersetzen Sie es mit Semikolon. Und es wird alarmieren 3 – Manish

Antwort

0

neben bekomme ich den Wert der Testvariablen in die Funktion übergeben oder müssen sie als Parameter zu übergeben?

Ja, versuchen Sie

var test = 3; 
    function looper(testing) 
    { 
     testing += testing; 
     return testing; 
    } 
    for (var i=0;i<=10,i++) 
    { 
     test = looper(test); 
     alert(test); 
    } 
-2
var test = 3; 
var testing = 1; 

function looper(){ 
    testing += testing; 
    return testing; 
} 
for (var i=0;i<=10,i++){ 
    test = looper(); 
    alert(test); 
} 
+0

Vielen Dank für Ihre Hilfe, nur um sicherzustellen, dass ich gut verstehe, um die letzte berechnete Testvariable zu erhalten, sollte ich außerhalb der Funktion platziert werden und JavaScript kann Variable von externen Funktionen leicht lesen – jaylab

0

Sie haben var testing = 1; so auch wird immer und immer zuerst instanziiert 1 wenn geschlungen sein.

Sie sollten es außerhalb des Funktionsumfangs bewegen:

var testing = 3; // NOT "test" but "testing"!!!!! 

    function looper(){ 
     testing += testing; 
    } 

    for (var i=0;i<=10,i++){ 
     looper(); 
    } 

    alert(testing); // "testing", remember? 
0

Die Variable Test global deklariert wird, so wird der Wert 3 in Alarmbereitschaft angezeigt wird. Wo bei jedem Aufruf eines Funktionsloopers der Variablentest erstellt wird, ohne den vorherigen Wert beizubehalten und ihm ein Wert 1 zugewiesen wird, ist der Wert des Tests beim Funktionsaufruf immer 2.

Verwandte Themen