je fais quelques appels Ajax à l'intérieur d'un objet javascript .:XMLHttpRequest intérieur d'un objet: comment garder la référence à « ce »
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
}
}
}
};
Dans la fonction onreadystatechange, cela ne fait pas référence à l'objet principal plus , donc je n'ai pas accès à this.foo. Puis-je conserver la référence à l'objet principal dans les événements XMLHttpRequest?
Je recommande fortement de vérifier Si la méthode 'Function.prototype.bind' existe avant de la créer, car elle fait partie du standard ECMAScript 5th Edition et qu'elle est implémentée par tous les principaux fournisseurs de navigateurs, bientôt une implémentation native sera disponible et vous ne voulez pas remplacez-le par le vôtre: [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/problèmes/détail? id = 384). – CMS