Java Reference
In-Depth Information
In dem Skriptbereich wird eine Funktion aussen() deiniert, die direkt nach der Deklara-
tion aufgerufen wird. Damit wird eine dynamisch generierte Überschrit der Ordnung 3
erzeugt und ausgegeben.
In der Funktion aussen() gibt es eine lokale Variable a, die mit dem Wert 21 initialisiert
wird. Dazu inden Sie zwei innere Funktionen innen1() und innen2() .
Die innere Funktion innen2() verdoppelt den Wert der Variable a . Es wird also auf eine
lokale Variable a aus dem Geltungsbereich der äußeren Funktion zugegrifen.
Auch in der inneren Funktion innen1() wird auf die lokale Variable a aus dem Geltungsbe-
reich der äußeren Funktion zugegrifen. Zusätzlich wird aber davor die andere innere Funk-
tion innen2() aufgerufen.
Der Aufruf der inneren Funktion innen1() erfolgt im Geltungsbereich der äußeren Funk-
tion, womit also auch indirekt innen2() aufgerufen wird.
HInTErGrunDInFOrMATIOn: Mit Closures kann man in JavaScript das Kon-
zept der Datenkapselung unterstützen, das im Rahmen der objektorientierten
Programmierung zu den Grundprinzipien zählt.
Innere Funktionen werden auch gerne als anonyme Funktionen erstellt. Das sehen wir im
nächsten Abschnitt zu Callbacks.
5.8.12■Callbacks
Zum Abschluss der Behandlung von Funktionen soll noch ein sehr wichtiger Begrif einge-
führt werden, der insbesondere bei der fortgeschrittenen JavaScript-Programmierung von
erheblicher Bedeutung ist. Unter einer Callback-Funktion oder kurz einem Callback ist
eine JavaScript-Funktion zu verstehen, die einen Zeiger auf sich liefert. Damit kann sie
einer Methode oder Funktion als Argument oder Option übergeben werden. Anonyme Funk-
tionen sind solche Callbacks, aber es gibt auch die Möglichkeit, eine benannte Callback-
Funktion zu deklarieren. In allen sinnvoll nutzbaren Situationen wird sie als Rückgabewert
eine Funktionsreferenz liefern. Betrachten Sie folgendes Beispiel (kap5_31.html):
Listing 5.56■ Einsatz von Callback-Funktionen
...
<script type="text/javascript">
function mFktion(a) {
alert(a);
}
</script>
</head>
<body>
<h1>Verwendung von Callbacks mit anonymen Funktionen</h1>
<button id="b1">Klick 1</button><button id="b2">Klick 2</button>
</body>
<script type="text/javascript">
function getText(text) {
 
Search WWH ::




Custom Search