function a1(){
...//这里跟22是一样的
$.get("a.asp?randID="+Math.random(),{action:"two"},function(data){if(data=="x"){
two('x');}
if(data=="y"){
two('y');
}});}
function a2(){
...//这里跟11是一样的
$.get("a.asp?randID="+Math.random(),{action:"three"},function(data){if(data=="x"){
three('x');}
if(data=="y"){
three('y');
}
});}function one(a){
...//这里更two(a)是一样的
a1();
}function two(a){
...//这里更two(a)是一样的
a2();
}
function three(a){
...//这里更two(a)是一样的
a3();
}//我想把a1,a2合成一个,如下function a1(a){$.get("a.asp?randID="+Math.random(),{action:a},function(data){//传参用变量if(data=="x"){
two('x');//这里函数名这里怎么改??能用变量作为函数名吗?怎么写?}
if(data=="y"){
two('y');
}});
}

解决方案 »

  1.   

    function a1(a){$.get("a.asp?randID="+Math.random(),{action:a},function(data){//传参用变量if(data=="x"){
    //two('x');//这里函数名这里怎么改??能用变量作为函数名吗?怎么写?
    eval(a+"('x')");
    }
    if(data=="y"){
    //two('y');
    eval(a+"('y')");
    }});
    }
      

  2.   

    function one(a){
    ...//这里更two(a)是一样的
    a1();
    }function two(a){
    ...//这里更two(a)是一样的
    a2();
    }
    function three(a){
    ...//这里更two(a)是一样的
    a3();
    }
    /////////////////
    function common(a,fn){//fn:a1,a2,a3
    ...//这里更two(a)是一样的
    fn();
    }
      

  3.   

    js中万能的eval可以执行任何字符串,eval("alert('da')");
    eval('function al () {alert("dds")}');就有了al函数了
    随你怎么用,eval(a + "('x')");……
      

  4.   

    function common(fnName){
        $.get("a.asp?randID="+Math.random(),{action:fnName},function(data){//传参用变量
            window[fnName](data);
        }
    }
    common('three');难道你是想这样?