0

重複の可能性:
Javascript グローバル変数が更新されていない

私が作っているこのサイトがあります。別の関数からグローバル変数を更新したい。グローバル変数 statCheck は 0 に初期化されます。2 つの関数を作成しました。1 つはグローバル変数を更新し、アラートによって新しい値を表示する関数で、もう 1 つは更新されたグローバル変数の新しい値を警告するだけの関数です。問題は、最初の関数を呼び出すと、新しく更新された値が警告されることですが、2 番目の関数を呼び出すと、元の値がゼロであることが警告されます。これが私のコードです:

var statCheck=0;

var users=new Array();
var password=new Array();
users[0]="clydewinux";
password[0]="moonfang";
users[1]="freddipasquale";
password[1]="evastar182";

function verifyInput(){
var u=login.username.value;
var p=login.password.value;
for (var c=0;c<=1;c++){
    if(u===users[c]&&p===password[c])
        { 
        statCheck=1; 
        alert(statCheck);
        window.open("login.htm", '_self'); 
        break;}
    else
        {document.getElementById("username").value="Invalid username..."; 
        window.open("home.htm", '_self'); 
        break;}
    }

        }

function logout(){
alert(statCheck);
window.open("home.htm", '_self');
}

*ノート; function verifyInput() が最初の関数で、関数 logout が 2 番目の関数です。

4

1 に答える 1

1

グローバル変数を使用する場合は、明示的にグローバルにすることをお勧めします。

window.statCheck = 0;
// ...
window.statCheck = 1;
// ...
alert(window.statCheck);

これは、コードの可読性にも役立ちます。

于 2012-10-22T18:29:12.283 に答える