我做一些Ajax从JavaScript对象:的XMLHttpRequest对象内:如何保持提及“本”
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
}
}
}
};
里面的onreadystatechange函数内部调用,这并不是指主要对象了,所以我没有访问this.foo。何我可以保留对XMLHttpRequest事件中的主要对象的引用吗?
我会强烈建议检查如果在创建它之前存在'Function.prototype.bind'方法,因为它是ECMAScript第5版标准的一部分,并且它正在被所有主要浏览器供应商实现,不久本地实现将可用,并且您不希望用你自己的代码覆盖它:[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 /问题/细节?ID = 384)。 – CMS 2010-05-11 20:34:10