Три страницы ниочем, и при чем тут ес6? Вот так делается правильный scope
var data=false;
SomeClass.prototype.foo = function(id){
ajax({
method: 'POST',
url: 'test.php',
params: 'id='+id,
success: function(response){
data = response; // ответ получен
}
});
}
хотите риторически отметить что тут ничего и не делается? Ну правильно. Потому что действие надо тупо закатать в эту самую функцию success, то есть передать его сквозь foo
SomeClass.prototype.foo = function(id,success){
ajax({
method: 'POST',
url: 'test.php',
params: 'id='+id,
success: success(response)
});
}
Логично возникает вопрос зачленом обертывать функцию функцией без ничего между ними? Незачем.
Что и требовалось доказать.