请问,怎么实现这种传递参数的方式(动态参数个数):test("kk",{ip:"127.0.0.1",name:"admin",pwd:"admin"});
test(ip:"127.0.0.1",name:"admin",pwd:"admin",logDate:"2010-3-13");

解决方案 »

  1.   

    或者可以传递函数:
    test(ip:"127.0.0.1",name:"admin",pwd:"admin",Fn:Fn);
    var Fn=function(){
    alert("vvv");
    });
      

  2.   

    动态参数:用arguments判断
    传递函数没问题,传就是了。
      

  3.   

    但test函数怎么访问传过来的如:.ip,.name等,怎么执行Fn函数呢?
      

  4.   

    return top:
    这位同学在那学到这样的参数构造了wich is "test(ip:"127.0.0.1",name:"admin",pwd:"admin",Fn:Fn)" ?
    我只看到过:"test({ip:"127.0.0.1",name:"admin",pwd:"admin",Fn:Fn})"
    about NO.1:<script type=text/javascript>
    function test(){
        var b, a = arguments;
        a.length == 1 && (b=a[0]) && alert("ip = " + b.ip + "\nname = " + b.name + "\npwd = " + b.pwd + "\nlogDate = " + b.logDate);
        a.length == 2 && (b=a[1]) && alert("kk = " + a[0] + "\nip = " + b.ip + "\nname = " + b.name + "\npwd = " + b.pwd);
    }
    test({ip:"127.0.0.1",name:"admin",pwd:"admin",logDate:"2010-3-13"});
    test("kk",{ip:"127.0.0.1",name:"admin",pwd:"admin"});
    </script>about NO.2:<script type=text/javascript>
    var test = function(o){
        o.Fn();
    }
    var Fn = function(){
        alert("vvv");
    }
    test({ip:"127.0.0.1",name:"admin",pwd:"admin",Fn:Fn});
    </script>
      

  5.   

    对,就传一个参数对象就可以了,javaScript中传参是非常松的。而且传进去的参数被保存在arguments数组中。
      

  6.   

    OK,已经可以了,谢谢test("kk",{ip:"202",id:12,name:"kkk",Fn:Fn});
    function Fn(){
            alert("fff");
    }
    var test=function(){
    var b,a=arguments;
    if(a.length==1){b=a[0];b.Fn();alert("ip="+b.ip+"\nname="+b.name);}
    else if(a.length==2){b=a[1];b.Fn();alert("kk="+a[0]+"\nip="+b.ip+"\nname="+b.name);}
    else{return;}
    }
      

  7.   

    还有一个问题,怎样让这样的传参都可以执行:
    test("kk",{ip:"202",id:12,name:"kkk",Fn:Fn});
    test("kk",{ip:"202",id:12,name:"kkk",logDate:"2010-3-14",Fn:Fn});
    test("kk",{ip:"202",id:12,name:"kkk",status:1,Fn:Fn});
    不同的参数。