вы можете справиться с этим двумя способами.
Используйте функцию стрелки
askServer(url)
{
var request = new XMLHttpRequest();
request.onreadystatechange = () => {
if (request.readyState == 4 && request.status == 200) {
// Got the response
this.foo(); // How to access foo-method??
}
}
request.open('GET', url);
request.send();
}
foo()
{
// Do something here
}
Как вы можете видеть, я теперь ссылаюсь на объект запроса по переменной, а не по this
, поскольку область действия функции стрелки ограничена по-разному.
И вы можете увидеть здесь, как вы можете ссылаться на запрос:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/onreadystatechange#Example
Сохранить ссылку на верхнюю область в переменной :
askServer(url)
{
var request = new XMLHttpRequest();
var self = this;
request.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Got the response
self.foo(); // How to access foo-method??
}
}
request.open('GET', url);
request.send();
}
foo()
{
// Do something here
}