首页 / AJAX / ajax回调函数参数传递正确方法
ajax回调函数参数传递正确方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ajax回调函数参数传递正确方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1874字,纯文字阅读大概需要3分钟。
内容图文
![ajax回调函数参数传递正确方法](/upload/InfoBanner/zyjiaocheng/383/034e5112824b4619a0f142ac14c0c616.jpg)
代码如下:
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回调函数参数传递正确方法全部内容,希望文章能够帮你解决ajax回调函数参数传递正确方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。