Ich bin auf der Suche nach einem Trick zu diesem Thema. Ich weiß, wie eine dynamische, beliebige Funktion in Javascript aufrufen, bestimmte Parameter übergeben, etwa so:Aufruf der dynamischen Funktion mit dynamischen Parametern in Javascript
function mainfunc (func, par1, par2){
window[func](par1, par2);
}
function calledfunc(par1, par2){
// Do stuff here
}
mainfunc('calledfunc','hello','bye');
Ich weiß, wie optional, unbegrenzte Parameter zu übergeben Argumente [] Sammlung innerhalb mainfunc verwenden, aber ich kann nicht herausfinden, wie eine beliebige Anzahl von Parametern zu senden mainfunc an gesendet werden, genannt funf dynamisch; Wie kann ich etwas so erreichen, aber mit einer beliebigen Anzahl von optionalen Argumenten (nicht mit dem hässlichen if-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');
Das PHP-Äquivalent für 'apply()' ist 'call_u ser_func_array() '. Die http://phpjs.org/functions/call_user_func_array Lösung verwendet es auch. – powtac