Wir haben bisher schon einige vordefinierte JavaScript-Funktionen kennengelernt. In diesem Kapitel beschäftigen wir uns mit eigenen Funktionen. Diese sind ein wichtiges Mittel, um auch bei größeren Programmen den Code schlank und effizient zu halten. In Funktionen kann man unter Anderem eine Folge von Befehlen zusammenfassen, die an mehreren Stellen ausgeführt werden sollen. Dadurch spart man es sich, die Befehlsfolge jedes Mal neu einzutippen. Außerdem lässt sich die Angabe der Befehlsfolge und die tatsächliche Ausführung davon trennen. So kann man etwa den Code strukturieren und am Anfang alle Funktionen defnieren, die man später braucht, und dann an den entscheidenden Stellen nur noch die Funktion aufrufen, um den Code auszuführen.

Die erste Seite dieses Kapitels erklärt, wie man eigene Funktionen definiert. Die Definition einer Funktion startet mit dem JavaScript-Schlüsselwort function. Diesem folgt der Name, den man der Funktion geben möchte und zwei runde Klammern. Die eigentlichen Befehle, die beim Aufruf der Funktion ausgeführt werden sollen, kommen wieder zwischen geschweifte Klammern. Eine einfache Funktion könnte dann wie folgt aussehen.

<script>
function sagHallo() {
	alert("Hallo");
}
</script>

Führen wir dieses Skript aus, so merken wir, dass noch keine Nachricht ausgegeben wird. Das liegt daran, dass wir die Funktion nur definiert, aber noch nicht aufgerufen haben. Der Code innerhalb der Funktionsdefinition kommt also nicht direkt an der Stelle der Definition zur Ausführung. Wir sehen bei dem Beispiel auch, dass innerhalb der Funktion wiederum eine Funktion aufgerufen werden kann.

Manchmal möchte man eine Funktion benutzen, die einen bestimmten Wert zurück gibt. Dafür wird der JavaScript-Befehl return benutzt. Zu beachten ist, dass die Ausführung einer Funktion sofort beendet wird, wenn sie auf einen -Befehl trifft.

<script>
function gibMirEine1() {
	return 1;
}
</script>

In den meisten Fällen dient eine Funktion auch dazu, gewisse Daten zu verarbeiten bzw. zu benutzen, um etwas mit ihnen durchzuführen. Dazu kann man in die runden Klammer, die bisher immer leer geblieben sind, sogenannte Argumente eintragen. Dies ermöglicht es uns später beim Aufruf der Funktion Werte mitzuliefern, die dann in der Funktion z.B. für Berechnungen verwendet werden können.

<script>
function minimum(zahl1, zahl2) {
	if ( zahl1 > zahl2 ) return zahl2;
	return zahl1;
}
</script>

Diese Funktion liefert das Minimum zweier Zahlen. Ist die zweite Zahl kleiner, so ist die Bedingung in der ersten Befehlszeile der Funktion erfüllt und es wird sofort die zweite Zahl ausgegeben und die Funktion beendet. Andernfalls (dann muss die erste Zahl kleiner oder gleich der zweiten Zahl sein) wird die erste Zahl ausgegeben. Die Argumente zahl1 und zahl2 wurden nirgends als Variablen definiert. Sie dienen ausschließlich als Platzhalter für Werte, die beim Aufruf der Funktion eingetragen werden können. Um den Aufruf von Funktionen kümmern wir uns auf der nächsten Seite.