definido Este es mi código:JavaScript "no es una función" error al llamar al método
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
},
Curiosamente, los fuegos de alerta sin ningún problema, pero la llamada de función debajo de mí da este error:
Error: this.peter_save_data is not a function
Llamar a la misma maldita función desde otra función en otro lugar funciona bien.
Me imagino que es porque estás usando 'this' en el ámbito mal. ¿Has intentado pasarlo a la función 'peter_save_data()' pero llamándolo como 'objWhatever.peter_save_data (this)'? –
Ese no es el código completo. Una pieza importante del rompecabezas que falta es * cómo se llama 'response * xml'; esto es importante, porque cambiará lo que es 'this' (ver el comentario de Jared). Recuerde que "esto" puede ser considerado como "el receptor de la llamada al método". –
¿Por qué no llamarlo con su nombre calificado? –