//数组长度不定
var pars = ["1", 2, 3];
var fun = function(){
    console.log(arguments);
};
//数组长度不定的情况下怎么传递?
//不能直接传递数组fun(pars)
//eval?能不能不用?
fun(pars[0], pars[1], pars[2]);

解决方案 »

  1.   

    问题以解。。感谢各位。。
    fun.apply(this, pars.concat());
      

  2.   

    //多写了。汗
    fun.apply(this, pars);
      

  3.   


    //数组长度不定
    var pars = ["1", 2, 3];
    var fun = function(){
        console.log(arguments[0]);
    };
    fun(pars);
      

  4.   

    相当于fun(pars[0], pars[1], pars[2]);
      

  5.   

    fun(pars);
    //fun方法内的arguments值会是这样[[1,2,3]]
    fun.apply(null, pars);
    //arguments的值才会是[1,2,3]
      

  6.   

    不知道你的fun为什么一定要这样写function fun(p){
        console.log(p);
    }fun(pars);OK!
      

  7.   


    zd.dwr = function(){
        var arg = Array.prototype.slice.call(arguments);
        var pkg = arg.shift().split('.');
        var cls = window[pkg[0]];
        if (cls) {
            cls[pkg[1]].apply(null, arg);
        }
        else {
            zd.js("dwr/interface/" + pkg[0] + ".js", function(){
                var cls = window[pkg[0]];
                if (cls) {
                    cls[pkg[1]].apply(null, arg);
                }
            });
        }
    };
      

  8.   

    <script>
    var fun = function(a){
        alert(a)
    };
    fun("测试!");
    </script>
    这样不是可以吗?何必这么麻烦?
      

  9.   

    呵呵,我调用的function参数是不确定的。
    不然我也不想写成这样。