JavaScript Callbacks?
Eine Sache die ich schon lange nicht verstehe ist warum Leute die Funktion als Parameter übergeben, das muss man doch gar nicht.
function sayHello1(callback){
alert("Hello1");
callback();
}
function sayHello2(){
alert("Hello2")
}
sayHello1(sayHello2);
ginge genau so auch in zwei wörtern kürzer.
function sayHello1(){
alert("Hello1");
sayHello2();
}
function sayHello2(){
alert("Hello2")
}
sayHello1();
oder hab ich irgendwas vergessen ?
3 Antworten
Es hat halt den Vorteil, dass man eine beliebige Funktion übergeben kann.
Dann musst du den Code von sayHello1 nicht immer ändern, sondern kannst ihn für verschiedene Funktionen (z.B. sayHello2 und sayHello3) wiederverwenden.
Damit du flexibler bist. Angenommen du hast eine gute Klasse geschriebene und dort ein Button Objekt reingemacht, dann soll dich der Nutzer deiner Klasse nicht mit deinem Code raumschlagen müssen, sondern können selbst einfach beim konstruieren des Buttons ihre callback Funktion angeben.
In deinem zweiten Beispiel ruft sayHello1 immer sayHello2 auf. Wenn du einen Callback übergibst, kannst du deine beliebige Funktion aufrufen.
Beispiel wäre z.B. eine Funktion showAlert(callback); die ein Fenster mit einem Button zeigt und dann callback ausführt, wenn der Button gedrückt wird. Die kannst du für unterschiedlichste Zwecke verwenden.