На самом деле, для этого вам вообще не нужно использовать this
, поскольку вы не создаете никаких экземпляров объекта и он не действует как конструктор.
Вы можете просто:
function ajax(url, func) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
// note: loaded is 4 ^
func(xmlhttp.responseText);
}
}
xmlhttp.open('GET', url, true);
// ^~~ you also forgot to pass parameters here
xmlhttp.send('');
}
Это сделает работу функции ajax
.
Для вашей функции change_text
она не совпадает с функцией ajax
, поэтому она не имеет доступав переменную xmlhttp
.Однако функция ajax
передала ему responseText, поэтому просто заставьте свою функцию получить его:
function change_text(responseText) {
var target = document.getElementById("x");
// ^~~ don't forget to declare local variables with `var`.
target.innerHTML = responseText;
}
Рабочий пример приведен в jsFiddle .