ajax回调函数参数传递

来源:互联网 发布:bodog信誉第一js 编辑:程序博客网 时间:2024/04/28 01:05

属性方法是可以带参数:

Js代码  收藏代码
  1. function ClassX(name) {  
  2.     this.name = name;  
  3.     ClassX.prototype.show = function (param) {  
  4.         alert(this.name + " " + param);  
  5.     };  
  6. }  
  7. var o = new ClassX("name");  
  8. o.show("param");//name param   

 
但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show('param')时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时

request.onreadystatechange=function(param){...}

request.onreadystatechange=callBack;function callBack(param){...}

时就不好使了,因为此时ajax根本就没有给你传递param参数,正确做法形如:

Js代码  收藏代码
  1. //request.onreadystatechange = orgEval;//错误作法  
  2.   
  3. //request.onreadystatechange = function (request, pOrgName) {//错误作法  
  4. //  orgEval(request, pOrgName);  
  5. //};  
  6.   
  7. //...  
  8. request.onreadystatechange = function () {//正确作法  
  9.     orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质   
  10. };  
  11. //...  
  12.   
  13. function orgEval(req, orgName){  
  14.     //...  
  15. }  

  这样通过在匿名函数内调用回调实现函数,并且直接传入参数即可。