javascript / jQuery中具有变量参数的函数

时间:2012-02-14 16:10:33

标签: javascript jquery arguments

我需要和建议。

这是我的问题,我有“N”功能。

 var FirstOne  = function(){
    return $.ajax({
        type: "POST",
        url: hrefUrl,
        data: JSON2.stringify(option),
        contentType: "application/json; charset=utf-8",
        dataType: "json",           
        error: function(status){
        },
        success: function(data){    
        }
    });
};

var SecondOne  = function(){

    return $.ajax({
        type: "POST",
        url: hrefUrl,
        data: JSON2.stringify(option2),
        contentType: "application/json; charset=utf-8",
        dataType: "json",           
        error: function(status){
        },
        success: function(data){    
        }
    });
};


.............


var NOne  = function(){

    return $.ajax({
        type: "POST",
        url: hrefUrl,
        data: JSON2.stringify(optionn),
        contentType: "application/json; charset=utf-8",
        dataType: "json",           
        error: function(status){
        },
        success: function(data){    
        }
    });
};

所有这些函数都被推入一个对象中。

var funcObject= [FirstOne(), SecondOne(), ....... NOne() ];

等待所有Ajax函数完成之后和之后我很好。

    $.when.apply($, funcObject).done(function (a1, a2, ...an) {
 //        ..... here already doesn't matter

    });

我的问题在这里:

function (a1, a2, ...an)

我希望将函数参数改为对象,因为我不知道将会有多少函数。

所以我可以编辑函数对象,这很酷$.when.apply($, fucArr),问题是使用可变数量的参数。

PS:也许我可以对这些论点使用“apply”或“call”吗?

有人可以在这里给我一个想法。谢谢很多人!!!

1 个答案:

答案 0 :(得分:11)

您可以使用the arguments keyword访问传递给方法的所有参数,例如:

function () {
  Console.log(arguments); //arguments is an array
}

The apply method可用于在另一个函数调用中使用这些参数:

function () {
  someFunction.apply(this, arguments);
}