2016-06-21 3 views
1

Ich habe versucht, eine globale Variable mit JavaScript nach jedem Aufruf einer Methode zu aktualisieren. Aber es wird nicht aktualisiert. Die Sache, die ich versucht habe, deklariere eine Variable und deklariere eine Variable, um sie zu initialisieren, indem ich eine Methode aufruft, und versuche dann, diese hinzuzufügen. Mehrmals muss ich das tun. Aber es fügt nicht hinzu. Kann ich das nicht mit JavaScript machen?Wie aktualisiert man den Wert einer Variablen den ganzen Code mit Javascript?

function finalResult() { 

    var result = ""; 


    function addString(str1, str2) { 
     return str1 + str2; 
    } 

    var filter1 = addString("a", "b"); 
    result += filter1; 

    var filter2 = addString("c", "d"); 
    result += filter2; 

    console.log(result); // gives me -> empty string (ie the first time initialized value) 

} 

Und meine erwartete Ausgabe ist wie: abcd

+0

Haben Sie Ihr var Ergebnis Zugabe versucht zu arbeiten = „“ außerhalb von finalResult bevor es nennen? Wenn ja, wo sehen Sie, dass der Output nicht so war, wie er erwartet wurde? – Fortin

+0

tatsächlich habe ich console.log() hinzugefügt, um das zu überprüfen und nur "" zu bekommen. – adarksun

+1

Wurde es innerhalb der Funktion oder außerhalb hinzugefügt? Weil die Variable "result" innerhalb der Funktion deklariert ist und außerhalb nicht sichtbar ist. Wenn Sie console.log (result) vor Ihrem letzten "}" hinzufügen, sollten Sie sehen, dass das Ergebnis wie erwartet ist. – Fortin

Antwort

0

wenn Sie wollen Variable global machen, erklären sie außerhalb Funktion oder var result = ""; zu result = ""; ändern. Ihr Code scheint fein- https://jsfiddle.net/oevr4rwm/1/

function finalResult() {  
    result = "";  

    function addString(str1, str2) { 
     return str1 + str2; 
    }  

    var filter1 = addString("a", "b"); 
    result += filter1; 

    var filter2 = addString("c", "d"); 
    result += filter2;  
} 

finalResult();  
console.log(result); 
0

Sie haben vergessen, den String in finalResult zurückzukehren.

function finalResult() { 
    var result = ""; 

    function addString(str1, str2) { 
     return str1 + str2; 
    } 

    var filter1 = addString("a", "b"); 
    result += filter1; 

    var filter2 = addString("c", "d"); 
    result += filter2; 

    console.log(result) // if you want to log "abcd" to the console when you invoke the function elsewhere in your code 
    return result;  // if you want the function to return "abcd" 
} 
Verwandte Themen