Ja­va­Script ist eine der do­mi­nie­ren­den Sprachen in der Er­stel­lung von Webseiten. Man nutzt die Mög­lich­kei­ten der Skript­spra­che, um Seiten in­ter­ak­tiv zu gestalten und auf Eingaben reagieren zu können. Hierbei werden innerhalb der Sprache Variablen, Objekte und Funk­tio­nen genutzt. Diese können alle auf­ein­an­der zugreifen und auch in ver­schie­de­nen Browsern immer das gleiche Ergebnis dar­stel­len. Hinter den meisten Buttons oder einer Anzeige von Content zu einem be­stimm­ten Zeitpunkt steckt dabei eine so­ge­nann­te Callback-Funktion (dt. Rück­ruf­funk­ti­on).

Funk­tio­nen dieser Art sind jedoch kei­nes­wegs ein Al­lein­stel­lungs­merk­mal von Ja­va­Script: Auch andere bekannte Pro­gram­mier­spra­chen wie C, Java, PHP oder Python setzen auf Callbacks, um auf einfache Weise bestimmte Be­nut­zer­pa­ra­me­ter zu übergeben.

Domain kaufen
Re­gis­trie­ren Sie Ihre perfekte Domain
  • Inklusive 1 SSL-Wildcard-Zer­ti­fi­kat pro Vertrag
  • Inklusive Domain Lock
  • Inklusive Domain Connect für einfache DNS-Ein­rich­tung

Was ist eine Callback-Funktion?

Funk­tio­nen arbeiten immer mit Pa­ra­me­tern, auf die sie zu­rück­grei­fen. Wenn man einer Funktion als Parameter eine weitere Funktion zuweist, spricht man von einer Callback-Funktion. Diese Callback-Funk­tio­nen werden sehr oft in Bi­blio­the­ken und Frame­works wie den Ja­va­Script-An­wen­dun­gen jQuery, Angular oder node.js verwendet. Sie eignen sich dazu, Funk­tio­nen er­wei­ter­bar zu machen und dann bei gewissen Er­eig­nis­sen oder Umständen auf­ge­ru­fen zu werden.

Wie funk­tio­niert eine Callback-Funktion?

Eine Callback-Funktion hat immer eine bestimmte Aus­wir­kung, die an bestimmte Umstände gebunden ist. Dem­entspre­chend werden Callback-Funk­tio­nen nur auf­ge­ru­fen, wenn eine klar de­fi­nier­te Handlung erfolgt ist. Ein gutes Beispiel für Rück­ruf­funk­tio­nen sind Event-Handler (dt. Er­eig­nis­be­hand­ler), die bei­spiels­wei­se in HTML-Elementen wie Buttons zum Einsatz kommen. Ein Event bzw. Ereignis kann hier ein Klick mit der Maus sein, der die Aus­füh­rung der Callback-Funktion ver­ur­sacht. Die Callback-Funktion an sich wird ver­mut­lich für eine Wei­ter­lei­tung auf eine weitere Seite sorgen. Auch die Übergabe eines Werts in einem Formular, das man ausfüllt, ist ein mögliches Szenario.

Der Haupt­un­ter­schied zwischen einer normalen Funktion und einer Callback-Funktion lässt sich also fol­gen­der­ma­ßen fest­hal­ten: Während eine normale Funktion direkt auf­ge­ru­fen wird, wird die Rück­ruf­funk­ti­on zunächst nur definiert. Auf­ge­ru­fen und aus­ge­führt wird die Funktion erst, wenn ein be­stimm­tes Ereignis eintritt. Wie erwähnt finden Callback-Funk­tio­nen in den ver­schie­dens­ten Pro­gram­mier­spra­chen Anwendung. Dabei un­ter­schei­den sich zwar die Syntax und der Aufbau der Methoden, das Prinzip des Callbacks bleibt jedoch sprach­über­grei­fend erhalten.

Callback-Funktion in Ja­va­Script

In der Pro­gram­mie­rung mit Ja­va­Script sind Callback-Funk­tio­nen weit ver­brei­tet. Dabei kann es sich um eine Funktion handeln, die beim Drücken eines Buttons auf­ge­ru­fen wird, oder um Content, der zeit­ver­setzt mit einer set­Time­out()-Funktion verbunden ist.

Ein einfaches Beispiel für eine Rück­ruf­funk­ti­on in Ja­va­Script ist ein ge­wöhn­li­cher Button:

document.getElementById("Button1").addEventListener("click", function() {
	console.log("Button wurde gedrückt");
}, false);

In diesem Beispiel wurde ein Event­Lis­te­ner als Callback ein­ge­setzt, der bei einem be­stimm­ten Ereignis ausgelöst wird – in diesem Fall der Klick auf den Button mit der ID „Button1“. Sobald der Button an­ge­klickt wird und dadurch die Be­din­gun­gen für die Callback-Funktion erfüllt sind, wird die Funktion aus­ge­führt und in der Konsole die Nachricht „Button wurde gedrückt“ aus­ge­ge­ben. Um eine Ab­wärts­kom­pa­ti­bi­li­tät für ältere Browser zu ge­währ­leis­ten, wurde im Beispiel zudem der Parameter „false“ verwendet.

Callback-Funk­tio­nen in PHP

In PHP werden Callback-Funk­tio­nen ähnlich wie bei Ja­va­Script auf­ge­ru­fen. Al­ler­dings können Rück­ruf­funk­tio­nen in der Skript­spra­che auch Methoden eines Objekts sein, die über statische Klas­sen­me­tho­den verfügen.

Ein Beispiel für eine klas­si­sche PHP-Callback-Funktion:

function my_callback_function() {
	echo 'Hallo Welt!';
}

Durch den Aufruf dieser Funktion wird der String „Hallo Welt!“ aus­ge­ge­ben. Um den Callback als Methode auf­zu­ru­fen, geht man fol­gen­der­wei­se vor:

class MyClass {
	static function myCallbackMethod() {
		echo 'Hallo Welt!';
	}
}

In PHP sind Callbacks ein beliebtes Mittel, damit Funk­tio­nen un­ter­ein­an­der kom­mu­ni­zie­ren können. Sie werden oft genutzt, um Plug-ins oder Module sauber zu im­ple­men­tie­ren und deren Funktion si­cher­zu­stel­len.

Callback-Funk­tio­nen in Python

Python ist aufgrund der einfachen Syntax eine der be­lieb­tes­ten Pro­gram­mier­spra­chen. Durch den viel­sei­ti­gen Einsatz in Soft- und Hardware bietet die Sprache den perfekten Einstieg, wenn man das Pro­gram­mie­ren erlernen will. Besonders in den Bereichen Data Science und Machine Learning ist die Sprache stark gefragt und bietet viele Vorzüge gegenüber anderen Sprachen.

In Python werden Callbacks meistens genutzt, um UI-Elementen ver­schie­de­ne Er­eig­nis­se zu­zu­ord­nen. In nach­fol­gen­dem Beispiel werden zwei Funk­tio­nen definiert, der Callback „get_square“ und der Aufruf „caller“. An­schlie­ßend wird der Callback auf­ge­ru­fen:

>>> def get_square(val):
		return val ** 2
>>> def caller(func, val):
		return func(val)
>>> caller(get_square, 5)

Die Syntax in der Callback-Funktion ist ähnlich wie bei Ja­va­Script und PHP sehr simpel aufgebaut.

Callback-Funk­tio­nen in Java

In Java ist es eher unüblich, eine Callback-Funktion aus­zu­füh­ren. Man kann sich dem Prinzip annehmen, benötigt dazu jedoch bei­spiels­wei­se das Re­flec­tion-Feature. Dabei werden Methoden und Funk­tio­nen ab­ge­bil­det und zu Objekten ver­ar­bei­tet. Demnach ist die Re­flec­tion eher eine Bi­blio­theks­funk­ti­on als ein Callback.

Auch das SAX-Prinzip funk­tio­niert bei Java ähnlich der Callback-Funktion. Hierbei wird eine XML-Datei durch den SAX-Parser ein­ge­le­sen und basierend auf dem ein­tref­fen­den Ereignis eine bestimmte Callback-Methode auf­ge­ru­fen – dazu zählen u. a. die Methoden start­Do­cu­ment() und start­Ele­ment().

Callback-Funk­tio­nen in C

In der Pro­gram­mier­spra­che C lassen sich Callback-Funk­tio­nen ähnlich wie in Ja­va­Script einbinden. Die Sprache wird häufig für die System- und An­wen­dungs­pro­gram­mie­rung genutzt und ist fester Be­stand­teil für die Pro­gram­mie­rung von Sys­tem­ker­nen oder Be­triebs­sys­te­men. Viele Pro­gram­mier­spra­chen wie z. B. Ja­va­Script, PHP, C++, Java oder auch C# haben sich stark an der Syntax und den Ei­gen­schaf­ten von C ori­en­tiert. Daher gibt es auch viele Über­schnei­dun­gen in der Syntax und den Methoden der ver­schie­de­nen Sprachen.

Ein Beispiel für eine Callback-Funktion in C:

void A()
{
    printf("Ich bin eine Funktion A\n");
}
// Die Callback Function
void B(void (*ptr)())
{
    (*ptr) (); // Hier wird der Callback zu A aufgerufen
}
int main()
{
    void (*ptr)() = &A;
    // Funktion B wird aufgerufen
    // Funktion A wird als Argument übergeben
    B(ptr);
    return 0;
}

Die Ausgabe dieses Codes lautet dem­entspre­chend: „Ich bin eine Funktion A“. Wie auch in Ja­va­Script wird eine Callback-Funktion immer dann auf­ge­ru­fen, wenn ein be­stimm­tes Ereignis eintritt. In C werden diese Funk­tio­nen genutzt, um diverse neue Libraries für die weitere Pro­gram­mie­rung zu erstellen und um Signale vom Kernel aus­zu­ge­ben, die für die Handhabe von asyn­chro­nen Events benötigt werden.

Managed Hosting für WordPress
Erstellen Sie Ihre Website mit AI, wir über­neh­men den Rest
  • Keine Vor­kennt­nis­se nötig dank be­nut­zer­freund­li­cher AI-Tools
  • Voll­stän­dig anpassbar mit Themes und Plugins
  • Einfache Updates und minimaler Admin-Aufwand
Zum Hauptmenü