hago algunas llamadas Ajax desde el interior de un objeto Javascript .:XMLHttpRequest dentro de un objeto: cómo mantener la referencia a "este"
myObject.prototye = {
ajax: function() {
this.foo = 1;
var req = new XMLHttpRequest();
req.open('GET', url, true);
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4) {
if(req.status == 200) {
alert(this.foo); // reference to this is lost
}
}
}
};
Dentro de la función onreadystatechange, esto no se refiere al objeto principal ya , entonces no tengo acceso a esto. ¿Puedo guardar la referencia al objeto principal dentro de los eventos XMLHttpRequest?
recomendaría encarecidamente comprobar si el método 'Function.prototype.bind' existe antes de crearlo, porque forma parte del Estándar ECMAScript 5th Edition y está siendo implementado por todos los principales proveedores de navegadores, pronto estará disponible una implementación nativa y usted no querrá anótalo con el tuyo: [WebKit] (https: // bugs.webkit.org/show_bug.cgi?id=26382), [Mozilla] (https://bugzilla.mozilla.org/show_bug.cgi?id=429507), [Google V8] (http://code.google .com/p/v8/issues/detail? id = 384). – CMS