我需要和建议。
这是我的问题,我有“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”吗?
有人可以在这里给我一个想法。谢谢很多人!!!
答案 0 :(得分:11)
您可以使用the arguments
keyword访问传递给方法的所有参数,例如:
function () {
Console.log(arguments); //arguments is an array
}
The apply method可用于在另一个函数调用中使用这些参数:
function () {
someFunction.apply(this, arguments);
}