2016-06-21 1 views
1

メソッドを呼び出すたびに、JavaScriptを使用してグローバル変数を更新しようとしました。しかし、それは更新していません。私が試したことは、変数を宣言し、変数を宣言してメソッドを呼び出すことで初期化してから、それらを追加しようとしました。数回、私はこれを行う必要があります。しかし、それは追加しない。 JavaScriptでこれを行うことはできませんか?javascriptを使用してコードのすべての部分の1つの変数の値を更新するにはどうすればよいですか?

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) 

} 

そして、私の予想出力はのようなものです:あなたはfinalResultで文字列を返すのを忘れABCD

+0

finalResultの外側でvar result = ""を追加しようとしましたか?そうであれば、その結果は期待されていたものではないと思いますか? – Fortin

+0

実際には、私はconsole.log()を追加してチェックし、 ""しか取得しませんでした。 – adarksun

+1

関数の内部または外部に追加されましたか? var "result"は関数内で宣言されているため、外部からは見ることができません。最後の "}"の前にconsole.log(result)を追加すると、結果が期待どおりになるはずです。 – Fortin

答えて

0

あなたはグローバル変数にしたい場合は、それを外部の関数を宣言またはresult = "";var result = "";を変更します。コードが正常に動作しているようです - 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

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" 
} 
関連する問題