JavaScriptのはまり方
thisについて
XMLHttpRequestを簡単に利用できるようにクラスを作った場合、
XMLHttpRequestClass.request=function(){
var self=this;
this.xmlHttp.open(this.method,this.url,true);
this.xmlHttp.onreadystatechange=function() {
if( self.xmlHttpPrevReadyState!=self.xmlHttp.readyState ){
self.xmlHttpPrevReadyState=self.xmlHttp.readyState;
}else{
return;
}
if( self.xmlHttp.readyState==4 )self.onload();
}
this.xmlHttp.send(postdata);
}
self.onload()をthis.onload()とかにすると、onreadystatechangeイベントが起きた時のthisがなんだかわからんくなる。selfって予約語じゃないよね…
xmlHttpPrevReadyStateについて
firefoxの場合、xmlHttp.readyState==4の時にxmlHttp.abort()すると、xmlHttp.readyState==4のままonreadystatechangeイベントが起きる。起きたと思う。