首页 > 开发 > AJAX > 正文

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

2024-09-01 08:31:29
字体:
来源:转载
供稿:网友
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){
//...
}


这样通过在匿名函数内调用回调实现函数,并且直接传入参数即可。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表