您好,欢迎访问一九零五行业门户网

ajax回调函数参数传递正确方法

这篇文章主要介绍了关于ajax回调函数参数传递正确方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
ajax回调函数参数传递正确方法,很多朋友习惯的写错了,这里简单的小结下。
属性方法是可以带参数:
function classx(name) { this.name = name; classx.prototype.show = function (param) { alert(this.name + " " + param); }; } var o = new classx("name"); o.show("param");//name param
但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show('param')时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时
request.onreadystatechange=function(param){...}

request.onreadystatechange=callback;function callback(param){...}
时就不好使了,因为此时ajax根本就没有给你传递param参数,正确做法形如:
//request.onreadystatechange = orgeval;//错误作法 //request.onreadystatechange = function (request, porgname) {//错误作法 // orgeval(request, porgname); //}; //... request.onreadystatechange = function () {//正确作法 orgeval(request, porgname);//在匿名函数内调用回调实现,并直接传入参数,这里用到了javascript的闭包性质 }; //... function orgeval(req, orgname){ //... }
这样通过在匿名函数内调用回调实现函数,并且直接传入参数即可。
ajax传递参数给onreadystatechange的回调函数
这几天开始学习ajax,其中自己做试验页面时有了传参数给xmlhttprequest.onreadystatechange的回调函数这个需求。如是baidu了下,发现说到这个的人不少啊。搜来的办法大概是这样:
xmlhttp.onreadystatechange=function(){callback(a,b);};
其中就传递了a和b两个参数。
后来我又自己发现了个方法,方法知道的人肯定很多,不过我在baidu上没搜到,这里就写出来,推广下咯。
xmlhttp.a=a;xmlhttp.b=b;xmlhttp.onreadystatechange=callback;..function callback(){ if(this.readystate==4) { a=this.a; b=this.b; . }}
也就是给xmlhttp对象增加两个属性,在回调函数中直接用this调用那两个属性。
另外说点自己的小经验,xmlhttp最好要写成全局变量,我一开始发现总有些请求没达到目的。后来才发现是把xmlhttp写在了一个函数里面,当那个函数运行完了,xmlhttp生命周期也结束了。这样有些请求在生命周期结束之前就实现了,而有些请求就没了。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注!
相关推荐:
关于ajax的get和post请求的介绍
关于ajax遍历xml文档的方法
以上就是ajax回调函数参数传递正确方法的详细内容。
其它类似信息

推荐信息