2017-06-06 4 views
-1

Warum kann ich Variablen, die ich in einer Funktion definiert habe, nicht aufrufen? Dies ist mein Code ...JavaScript: Variablen funktionieren nicht außerhalb der Funktion?

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); 
} 

Funktion TestIt() zurückkehrt: undefined

Was meinen Code tut, ist Infos von einem JSON codiert Seite zu bekommen und Variablen machen.

+1

Innerhalb Ihrer Callback-Funktion setzen Sie den Gültigkeitsbereich dieser Variablen auf lokal, indem Sie 'var' verwenden. Entferne var vor dem Benutzernamen, rank, steamid, avatar in der Callback-Funktion. – James

+2

Ich meine ... natürlich funktioniert es nicht. 'testIt' hat keinen Zugriff auf diese Variable. Sie sollten es entweder an "testIt" übergeben oder einfach "testIt" entfernen und diese Logik in den Callback verschieben. Bewegen Sie sich nicht zu globalen Variablen, indem Sie 'var' entfernen ... –

+0

Vielen Dank für Ihre Antwort. Gelöst jetzt: D – Gogle

Antwort

0

Wenn Sie die Variablen außerhalb der Funktion verwenden möchten, müssen sie außerhalb der Funktion definiert werden.

Verwandte Themen