Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In JavaScript ist die Kenntnis von Funktionen und ihre korrekte Anwendung ausgesprochen wichtig. In diesem Kapitel wurden Hintergründe und Begrifflichkeiten rund um das Thema Funktionen erläutert. Sie haben die beiden wichtigsten Features von JavaScript-Funktionen kennengelernt:
Funktionen sind First-Class-Objekte – sie können als Werte weitergegeben und mit Eigenschaften und Methoden erweitert werden.
Funktionen stellen einen lokalen Scope zur Verfügung, den es bei anderen Blöcken in geschweiften Klammern nicht gibt. Denken Sie auch daran, dass die Deklaration von lokalen Variablen per Hoisting an den Anfang des lokalen Scopes verschoben wird.
Für das Erstellen von Funktionen gibt es verschiedene syntaktische Möglichkeiten:
Benannte Funktions-Ausdrücke
Funktions-Ausdrücke (wie oben, nur ohne Namen), auch als anonyme Funktionen bekannt.
Funktions-Deklarationen, die ähnlich wie die Funktions-Definition in anderen Sprachen arbeiten.
Nach der Erörterung des Prinzips und der Syntax von Funktionen haben Sie eine Reihe nützlicher Muster kennengelernt, die sich in folgende Kategorien unterteilen lassen:
API-Muster, die dabei helfen, bessere und sauberere Schnittstellen zu Ihren Funktionen bereitzustellen. Dazu gehören:
Übergabe einer Funktion als Argument
Steuerung der Anzahl an Argumenten einer Funktion
Der Rückgabewert einer Funktion ist eine andere Funktion
Erzeugen neuer Funktionen auf Grundlage bestehender Funktionen und einer partiellen Liste mit Argumenten
Initialisierungs-Muster helfen dabei, Initialisierungs- und Einrichtungs-Aufgaben sauberer und strukturierter durchzuführen (was sehr häufig auf Webseiten und in Webanwendungen erforderlich ist), ohne den globalen Namensraum mit temporären Variablen zu vermüllen. Dazu gehören:
Das Ausführen erfolgt direkt nach der Definition.
Initialisierungs-Aufgaben sind strukturiert in einem anonymen Objekt angelegt, das eine Methode zur sofortigen Ausführung enthält
Code wird nur einmalig beim Initialisieren ausgeführt und später nicht immer wieder abgeprüft.
Performance-Muster, die den Code schneller machen können. Dazu gehören:
Funktions-Eigenschaften werden genutzt, damit schon berechnete Werte nicht erneut berechnet werden müssen.
Eine Funktion überschreibt sich selbst, um ab dem zweiten Aufruf weniger Arbeit erledigen zu müssen.