Übergabe von Funktionen als Parameter in JavaScript
Funktionen können, ähnlich wie Zahlen, Strings und Arrays, als Parameter an andere Funktionen übergeben werden.
Betrachten wir dies genauer an einem praktischen Beispiel.
Nehmen wir an, wir haben eine Funktion test, die
zwei Parameter akzeptiert:
test(Parameter1, Parameter2);
Lassen Sie uns den ersten Parameter der Funktion test
mit einer anonymen Funktion belegen, die
1 zurückgibt, und den zweiten Parameter mit einer anonymen
Funktion, die 2 zurückgibt:
test(
function() {return 1;},
function() {return 2;}
);
Der oben angeführte Code funktioniert noch nicht, da wir die Funktion selbst noch nicht erstellt haben. Holen wir das nach:
function test(func1, func2) {
}
Bei der Definition der Funktion haben wir zwei Parameter angegeben
- func1 und func2. Diese Parameter
wissen nichts darüber, was in sie hinein übergeben wird.
Wir könnten beispielsweise Zahlen übergeben:
test(1, 2); // Funktion aufrufen
function test(func1, func2) {
console.log(func1); // gibt 1 aus
console.log(func2); // gibt 2 aus
}
Oder wir können Funktionen übergeben:
test(
function() {return 1;}, // erster Parameter
function() {return 2;} // zweiter Parameter
);
function test(func1, func2) {
console.log(func1); // gibt 'function() {return 1;}' aus
console.log(func2); // gibt 'function() {return 2;}' aus
}
Wie Sie sehen, gibt die Konsole nun den Quellcode der Funktionen aus. Lassen Sie uns das ändern, sodass er deren Ergebnisse ausgibt. Dazu fügen wir wir runde Klammern hinzu:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // gibt 1 aus
console.log( func2() ); // gibt 2 aus
}
Lassen Sie uns die Summe der Ergebnisse der ersten und zweiten Funktion in der Konsole ausgeben:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // gibt 3 aus
}
Erstellen Sie eine Funktion test, die
3 Funktionen als Parameter entgegennimmt. Übergeben Sie
ihr als ersten Parameter eine Funktion, die
1 zurückgibt, als zweite - eine Funktion, die
2 zurückgibt, als dritte - eine Funktion, die
3 zurückgibt. Geben Sie die Summe der Ergebnisse
der Funktionen in der Konsole aus.