Mam problem, który wciąż przeszkadza mi w js oop - jestem pewien, że robię to źle, ale nie mogę dostać, jak to zrobić dobrze.JavaScript OOP - zgubiłem to w asynchronicznym wywoływaniu zwrotnym
Na przykład, mam ten kod
Auth.prototype.auth = function() {
var request = new XMLHttpRequest();
request.open('GET', this.getAuthServerURL() + '/token', true);
request.send();
request.onloadend = function() {
var response = JSON.parse(request.responseText);
console.log(response);
if(response.result == 'found') {
var token = response.token;
this.setToken(token);
this.isSigned = true;
} else {
console.log('Not logged yet.');
}
}
}
Problemem jest to, że nie mogę dostęp funkcjonować setToken od kontekście funkcji „request.onloadend” - jego prawdopodobnie dlatego, że stracił odniesienie do „tego”.
Co to jest rozwiązanie tego problemu? Czy mogę w jakiś sposób przekazać "ten" var do kontekstu tej funkcji?
Dzięki!
Myślę, że druga jest bardziej bezpośrednia, kod jest minimalnie zmieniony i nie musisz decydować, którego pseudo słowa kluczowego użyć. Tylko mówię. – Esailija
@Eailailija: Ja też, ale niestety jego praktyczna wartość jest ograniczona przez kompatybilność przeglądarki. – Jon
Punkt kontrolny z 'XHR.onloaded' – Esailija