Sto cercando un trucco per questo. Io so come chiamare una dinamica, funzione arbitraria in Javascript, il passaggio di parametri specifici, qualcosa di simile:Chiamare la funzione dinamica con parametri dinamici in Javascript
function mainfunc (func, par1, par2){
window[func](par1, par2);
}
function calledfunc(par1, par2){
// Do stuff here
}
mainfunc('calledfunc','hello','bye');
so come passare opzionali, i parametri illimitata usando argomenti collezione [] all'interno mainfunc, ma, non riesco a capire come inviare un numero arbitrario di parametri a mainfunc da inviare a callfunc dinamicamente; come posso realizzare qualcosa del genere, ma con un numero qualsiasi di argomenti opzionali (non usare quel brutto se-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');
L'equivalente PHP per 'apply()' è 'call_u ser_func_array() '. Lo usa anche la soluzione http://phpjs.org/functions/call_user_func_array. – powtac