请问各路javascript大侠:Ajax重构中的this.onload.call(this);还有this.onerror.call(this);是什么意思
Ajax重构部分代码:net.AjaxRequest.onReadyState=function(){varreq=this.req;varready=req.ready...
Ajax重构部分代码:
net.AjaxRequest.onReadyState=function(){
var req=this.req;
var ready=req.readyState;
if (ready==4){
if (req.status==200 ){
this.onload.call(this);
}else{
this.onerror.call(this);
}
}
}
其他部分的代码能看懂 就这里的this.onload.call(this);和this.onerror.call(this);是什么意思呢 能不能详细点,谢谢各位!! 展开
net.AjaxRequest.onReadyState=function(){
var req=this.req;
var ready=req.readyState;
if (ready==4){
if (req.status==200 ){
this.onload.call(this);
}else{
this.onerror.call(this);
}
}
}
其他部分的代码能看懂 就这里的this.onload.call(this);和this.onerror.call(this);是什么意思呢 能不能详细点,谢谢各位!! 展开
2个回答
展开全部
call方法只能对函数有效。按照上述写法,在上述代码中,应当有这样的语句,
xhr.onload=function(){};
xhr.onerror=function(){};
否则不合理(this.onload会显示未定义)。
再看你的问题,this.onload指向的是绑定在此事件上的函数,一旦调用call函数就会立即执行,看上去的确是如此。后面的this.onerror同理。
xhr.onload=function(){};
xhr.onerror=function(){};
否则不合理(this.onload会显示未定义)。
再看你的问题,this.onload指向的是绑定在此事件上的函数,一旦调用call函数就会立即执行,看上去的确是如此。后面的this.onerror同理。
追问
谢谢!前面的this跟后面括号里的this有什么区别呢
追答
没区别的。都是指向当前异步对象的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询