Zum Inhalt

Inhaltsverzeichnis • Teil 5 - JavaScript • Ablauf • Funktionen
⇦ Anweisungen / Objekte ⇨
23.07.2014 18:54:52

Funktionen

Allgemein

Funktionen fassen Anweisungen zusammen, um diese dann (parametrisiert) immer wieder aufrufen zu können. Mit solchen Funktionen stellen Programmierer ihre JS-Anwendungen auch der Allgemeinheit zur Verfügung (s. Kursteile I und II).

Stellen sie sich eine parametrisierte Funktion wie eine Bohrmaschine vor, die sie je nach Aufsatz (Parameter) verschieden verwenden können. Bohrmaschine(5,Bohrer) wäre dann eine Bohrmaschine mit einem 5mm Bohrer und Bohrmaschine(10,Fräse) entspräche einer 1cm Fräse.

Eine weitere Besonderheit von JS ist, das nicht innerhalb einer Funktion stehender Code, immer sofort ausgeführt wird. Das ist allerdings nur in den seltesten Fällen erwünscht. Beachten sie dabei, das JS im <head> ausgeführt wird, wenn die Seite noch gar nicht vollständig geladen ist. Im <body> wird der Code an der Stelle ausgeführt, an der er steht. Wenn sie ihn erst ausführen wollen, wenn die Seite geladen wurde, gehört er in <body onload="">.

Funktionen heißen auf gut Deutsch auch Unterprogramme und das nicht zu unrecht. Eine Funktion stellt ein eigenes kleines Programm dar und deshalb sind beispielsweise alle innerhalb der Funktion deklarierten Variabeln lokal. Eine Funktion sollte also wie ein Programm immer mit einem Deklarationsteil beginnen.

Definieren

Bevor man eine Funktion vewenden kann, muss sie (ähnlich wie Variablen) erst definiert werden. In JS ist es üblich alle Funktionen deshalb am Anfang des Quelltexts zu stellen. Wenn eine Funktion eine andere aufruft, muss sich die aufgerufene vor der aufrufenden befinden (sonst wäre sie ja noch nicht definiert!).

Eine Funktion wird formal wie folgt definiert:

function fnname(parameter1,…,parameterN){
  Anweisungen;
  return Wert;
}

Die Syntax setzt sich dabei wie folgt zusammen:

function
Schlüsselwort zur Einleitung einer Funktionsdefinition
fnname
Selbstgewählter Name der Funktion
(parameter1,…,parameterN)
Parameter (Variablen) der Funktion; kann auch leer sein
{ Anweisungen; }
Anweisungen für die Funktion, welche die Parameter verwenden
return Wert
Schlüsselwort innerhalb des Anweisungsblock, das den Rückgabewert bestimmt und die Funktion abbricht

Hinweis: Eine Funktion kann auch fnname = function (parameter1,…,parameterN) { … } definiert werden.

Hinweis: Ein Schlüsseltwort ist ein reserviertes Wort (s. Anhang: JS reservierte Wörter) welches für die Programmiersprache eine besondere Bedeutung hat.

Zur Bildung von Funktions- und Parameter­namen schlagen sie bitte im Anhang: JS-Bezeichner nach.

Aufrufen

Wenn eine Funktion definiert ist, kann sie dann wie folgt aufgerufen werden:

fnname()

oder bei Funktionen mit Parametern:

fnname(wert1,…,wertN)

oder bei Funktionen mit Parametern und Rückgabewert:

rueckgabewert = fnname(wert1,…,wertN)

Die Syntax setzt sich dabei wie folgt zusammen:

rueckgabewert =
Variable, die den Rückgabewert speichert
fnname
Selbstgewählter Name der Funktion
(wert1,…,wertN)
Werte, die der Funktion als Parameter übergeben werden

Beispiel

Editor - index.html
<script type="text/javascript">
function Addiere(param1,param2){
  return param1 + param2;
}

alert(Addiere(2,2));
</script>

Beispielskript ausführen

Parameterübergabe

Wertparameter

Call by value: Bei der Übergabe einer Variablen an eine Funktion benutzt diese den Wert der Variablen. Selbst wenn der Variablen innerhalb der Funktion ein neuer Wert zugewiesen wird. Außerhalb der Funktion ändert sich der Wert der Variablen deshalb nicht.

Wenn sie wieder an unseren Zettel denken, wird der Zettel innerhalb der Funktion abgeschrieben. Der ursprüngliche Zettel verändert sich so nicht.

Das ist die Standardübergabe für Zahlen, Zeichenketten und Wahrheitswerte.

Referenzparameter

Call by reference: Wenn sie Objekte als Ganzes übergeben, wird nur eine Referenz auf dieses übergeben. Alle Änderungen am Objekt gelten dann auch außerhalb der Funktion.

Hier wird also nicht innerhalb der Funktion ein neuer Zettel verwendet, sondern der ursprüngliche Zettel direkt.

Vordefinierte Funktionen

Vordefinierte Funktionen finden sie im Anhang Anhang: JS-Funktionen und Objekte.

Funktionen verschachteln – Closures

http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#closures

Anonyme Funktion

Funktionen ohne Namen

Zusammenfassung

⇦ Anweisungen / Objekte ⇨
Nach oben