我希望AJAX回调在myFucntion中触发alert()并使用“It working”我如何在ajaxResponse中引用myobject对象?
function myobject() {
this.val = "worked";
http.onreadystatechange = function ajaxResponse() {
if (http.readyState == 4) {
this.myFunction();
}
http.send(null);
}
myobject.prototype.myFunction = function() {
alert("it "+this.val);
}
答案 0 :(得分:2)
只需将父对象附加到xhr对象,如下所示:
http.parent = this; // Append it here
http.onreadystatechange = function ajaxResponse()
{
if (http.readyState == 4)
alert(this.parent.value) // Access it here
}
答案 1 :(得分:1)
ajaxResponse是父函数中的一个函数,它在javascript中称为闭包。当闭包使用在其父函数中定义的变量时,该变量不能从内存中销毁,而父函数则完成执行。 所以,定义一个像这样的临时变量:
var objTmp = this;
然后你可以在ajaxResponse中使用这个变量objTmp。 或者你可以这样做:
http.onreadystatechange = (function(objTmp){
return
function ajaxResponse{alert(objTmp.value)}
})(this)