2016-05-06 6 views
0

JavaScriptが初めてのので、これが簡単な場合はお詫び申し上げます。私はコントローラにいくつかの値を渡しますが、後は​​ページを更新せずにグローバル変数をリセットする必要があります。私のコードは次のようになります。ファンクションリターン後の変数の更新

var userName = null; 
var _delegated = false; 

function setAddtionalData(value) { 
    if(value == true) { 
    userName = "something"; 
    _delegated = value; 
    } 
} 

function getAdditionalData() { 
    return { 
    username: userName, 
    delegated: _delegated 
    }; 
    userName = null;  // Does not get hit 
    _delegated = false;  // Does not get hit 
} 

変数は決して更新されません。ページをリフレッシュせずにこれらを設定する方法はありますか?

+0

ここで、setAditionalData関数を呼び出しますか? – kapantzak

答えて

0

returnステートメントが関数から抜けるため、これらの値には到達しません。

テンポラリ変数にusername_delegatedを保存し、nullに設定してからオブジェクトを返す必要があります。

returnステートメントは関数から抜けるために使用されるため、returnステートメントの後に置かれたステートメントは実行されません。

1

返品後のコードは実行されません。値を取得し、変数をクリアし、取得した値を返す必要があります。

function getAdditionalData() { 
    var retval = { 
    username: userName, 
    delegated: _delegated 
    }; 
    userName = null; 
    _delegated = false; 
    return retval; 
} 
関連する問題