<script type="text/javascript">
    function MyAlert(str) {
        alert(str);
    }
    function MyAlert2() {
        alert("??"); //显示传进来的第一个参数,后面的也一样,当然我想他们的取值方式也一样
        alert("??");
        alert("??");
    }
    function GetFun(fun) {
        alert("2");
        fun();  //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
        //然后我这里又要把这两个参数传给MyAlert2
        //如最终效果代码为""
        MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
        alert("4");
    }    
    alert("1");
    GetFun(function () { MyAlert("3","A") });
</script>
其实就是我不知道 fun被传进行有多少个参数
用什么方法可以得到所有参数谢谢

解决方案 »

  1.   

    你就是想知道MyAlert()方法调用的时候MyAlert()是带多少参数是吧
    那么在function MyAlert() {
      alert(arguments.length);
    }
    就知道了
      

  2.   


        function GetFun(fun) {
            alert(arguments.length);
            alert(fun.arguments.length);
            alert("2");
            fun();  //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
            //然后我这里又要把这两个参数传给MyAlert2
            //如最终效果代码为""
            MyAlert2("我是MyAlert2", "这是fun的第一个参数", "这是fun的第二个参数");
            alert("4");
        }   楼上的方法
    alert(arguments.length);
    可以得到我当前function的参数
    但是如何得到
    alert(fun.arguments.length);
    的参数集合呢?
      

  3.   

    这个属性仅仅在函数内部适用
    妥协点的方法是
    var g =[]; function MyAlert(str) {
            for(var tmp in arguments) {
               g.push(arguments[tmp]);
            }
     }
      

  4.   


       function MyAlert(str) {
            alert(str);
        }
        function MyAlert2() {
            for (var i=0,l=arguments.length;i<l;i++){
                alert(arguments[i])
            }
        }
        function GetFun(fun) {
            alert("2");
            fun();  //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
            //然后我这里又要把这两个参数传给MyAlert2
            //如最终效果代码为""
            MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
            alert("4");
        }    
        alert("1");
        GetFun(function () { MyAlert("3","A") });
      

  5.   

        function GetFun(fun) {
            //如何把传进FUN的两个参数传给MyAlert2
            //如最终效果代码为""
            MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
        }    
        GetFun(function () { MyAlert("3","A") });
    楼主的认识有误。在GetFun里面,fun这个函数参数,你在下面调用时的代码“GetFun(function () { MyAlert("3","A") });”,是一种无参数的调用方式。你所说的参数,是传递给MyAlert的。不是传递给fun的,所以fun不可能接收到。你可以在MyAlert里按楼上几位说的方法,把参数逐个存入一个全局数组中。然后在MyAlert2里从这个数组中取出使用。
      

  6.   

      <script type="text/javascript">
        function MyAlert(str) {
            //alert(str);
            alert(str.join(""));
        }
        function MyAlert2() {
            //alert("??"); //显示传进来的第一个参数,后面的也一样,当然我想他们的取值方式也一样
            //alert("??");
            //alert("??");
            for (var i=0;i<arguments[0].length;i++ ) alert(arguments[0][i]);
            
        }
        function GetFun(fun) {
            alert("2");
            fun();  //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
            //然后我这里又要把这两个参数传给MyAlert2
            //如最终效果代码为""
            var arr = Array.apply(null,fun.args);
            //MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
            arr.unshift("我是MyAlert2");
            MyAlert2(arr);
            alert("4");
        }    
        alert("1");
        GetFun((function () {var arr= Array.apply(null,arguments); fun= function(){ MyAlert(arr);};fun.args = arguments; return fun;})("3","A","B") );
    </script>