Faccio un po 'di chiamate Ajax dall'interno di un oggetto JavaScript .:XMLHttpRequest all'interno di un oggetto: come mantenere il riferimento a "questo"
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
}
}
}
};
All'interno della funzione onreadystatechange, questo non si riferisce all'oggetto principale più , quindi non ho accesso a questo.foo. Posso mantenere il riferimento all'oggetto principale all'interno degli eventi XMLHttpRequest?
consiglio vivamente di controllare se il metodo 'Function.prototype.bind' esiste prima di crearlo, poiché fa parte dello standard ECMAScript 5th Edition e viene implementato da tutti i principali fornitori di browser, presto sarà disponibile un'implementazione nativa e non si desidera sostituiscilo con il tuo: [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/temi/dettaglio? id = 384). – CMS