Ich suche hierfür eine Lösung. Mit JavaScript weiß ich, wie man eine dynamische, beliebige Funktion aufruft und dabei bestimmte Parameter angibt, etwa so.
Code
function mainfunc(func, par2, par1){
window[func](par1, par2);
}
function calledfunc(par1, par2){
// Do stuff here
}
mainfunc('calledfunc', 'helo', 'bye');
Ich verstehe, wie man optionale, unbegrenzte Parameter an mainfunc übergibt, indem man die Argumentsammlung in mainfunc verwendet, wie in dieser Quelle beschrieben, aber ich kann nicht herausfinden, wie man eine beliebige Anzahl von Parametern an mainfunc sendet, um sie dynamisch an calledfunc zu senden; Wie kann ich etwas Ähnliches erreichen, aber mit einer beliebigen Anzahl optionaler Argumente (anstelle dieses hässlichen if-else)?
Code
function mainfunc(func){
if(arguments.length == 2)
window[func](arguments[1], arguments[2]);
else if(arguments.length == 3)
window[func](arguments[1], arguments[2], arguments[3]);
else if(arguments.length == 4)
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');
Alles anzeigen