錯誤這是我的代碼:JavaScript的「是不是一個函數」當調用定義的方法
request_xml: function()
{
http_request = false;
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType('text/xml');
}
if (!http_request)
{
return false;
}
http_request.onreadystatechange = this.response_xml;
http_request.open('GET', realXmlUrl, true);
http_request.send(null);
xmlDoc = http_request.responseXML;
},
response_xml:function()
{
if (http_request.readyState == 4)
{
if(http_request.status == 404 && countXmlUrl<=3)
{
countXmlUrl++;
realXmlUrl = xmlUrl[countXmlUrl];
this.request_xml();
}
if (http_request.status == 200)
{
xmlDoc = http_request.responseXML;
alert("need to update3");
this.peter_save_data();
}
}
},
peter_save_data:function()
{
// removed function code
},
奇怪的是,警報火災沒有問題,但在函數調用下面給我這個錯誤:
Error: this.peter_save_data is not a function
從其他函數調用相同的該死的函數在其他地方工作正常。
我猜想那是因爲你在使用'this'在錯誤的範圍。你有沒有嘗試過將它傳遞給'peter_save_data()'函數,但將它稱爲'objWhatever.peter_save_data(this)'? – 2011-06-11 18:49:12
這不是完整的代碼。缺少的一個重要難題是* how *'response_xml'被調用 - 這很重要,因爲它會改變'this'的含義(參見Jared的評論)。記住'this'可以被認爲是「方法調用的接收者」。 – 2011-06-11 18:52:10
爲什麼不用合格的名稱來稱呼它? – 2011-06-11 18:52:23