我有这个网站,我正在制作。我想从另一个函数更新一个全局变量。全局变量statCheck初始化为0.我创建了2个函数,1表示更新全局变量并通过alert显示新值,第二个函数只是警告更新后的全局变量的新值。现在的问题是,当我调用第一个函数时,它会警告新的更新值,但是当我调用第二个函数时,它会警告原始值为零。这是我的代码:
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是第二个函数。
答案 0 :(得分:1)
使用全局变量时,最好将它们显式为全局变量:
window.statCheck = 0;
// ...
window.statCheck = 1;
// ...
alert(window.statCheck);
这也有助于提高代码的可读性。