Tôi đang tìm kiếm một mẹo về điều này. Tôi biết làm thế nào để gọi một chức năng tùy ý động trong Javascript, đi qua các thông số cụ thể, một cái gì đó như thế này:Gọi chức năng động với các thông số động trong Javascript
function mainfunc (func, par1, par2){
window[func](par1, par2);
}
function calledfunc(par1, par2){
// Do stuff here
}
mainfunc('calledfunc','hello','bye');
tôi biết làm thế nào để vượt qua tùy chọn, các thông số không giới hạn sử dụng đối số [] bộ sưu tập bên mainfunc, nhưng, tôi không thể tìm cách gửi số tham số tùy ý đến mainfunc để được gửi đến được gọi là động; làm thế nào tôi có thể thực hiện một cái gì đó như thế này, nhưng với bất kỳ số lượng các đối số tùy chọn (không sử dụng xấu xí nếu-else)? :
function mainfunc (func){
if(arguments.length == 3)
window[func](arguments[1], arguments[2]);
elseif(arguments.length == 4)
window[func](arguments[1], arguments[2], arguments[3]);
elseif(arguments.length == 5)
window[func](arguments[1], arguments[2], arguments[3], arguments[4]);
}
function calledfunc1(par1, par2){
// Do stuff here
}
function calledfunc2(par1, par2, par3){
// Do stuff here
}
mainfunc('calledfunc1','hello','bye');
mainfunc('calledfunc2','hello','bye','goodbye');
Tương đương PHP cho 'apply()' là 'call_u ser_func_array() '. Giải pháp http://phpjs.org/functions/call_user_func_array cũng sử dụng nó. – powtac