JavaScript:变量不在函数外部工作?
为什么我不能调用我在函数中定义的变量?这是我的密码JavaScript:变量不在函数外部工作?,javascript,json,Javascript,Json,为什么我不能调用我在函数中定义的变量?这是我的密码 var username; var rank; var steamid; var avatar; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { if (this.responseTex
var username;
var rank;
var steamid;
var avatar;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText == "null") {
} else {
var infoArr = JSON.parse(this.responseText);
var username = infoArr.username;
var rank = infoArr.rank;
var steamid = infoArr.steamid;
var avatar = infoArr.avatar;
testIt();
}
}
};
xhr.open("GET", "../getInfo.php", true);
xhr.send();
function testIt() {
alert(username);
}
函数testIt()正在返回:未定义
我的代码所做的是从JSON编码的页面获取信息并生成变量。如果要在函数外部使用变量,则需要在函数外部定义它们
var username, rank, steamid, avatar, infoArr, username, rank, steamid, avatar;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText == "null") {
} else {
infoArr = JSON.parse(this.responseText);
username = infoArr.username;
rank = infoArr.rank;
steamid = infoArr.steamid;
avatar = infoArr.avatar;
testIt();
}
}
};
xhr.open("GET", "../getInfo.php", true);
xhr.send();
function testIt() {
alert(username);
}
在回调函数中,使用
var
将这些变量的作用域设置为local。在回调函数中删除用户名、排名、蒸汽ID、头像前面的var。我的意思是。。。当然不行了testIt
无法访问该变量。您应该将其传递给testIt
,或者删除testIt
,然后将该逻辑移到回调中。不要通过删除var
移动到全局变量…感谢您的回答。现在解决:D