Java Reference
In-Depth Information
Was ist nun, wenn Sie beim Aufruf mehr Parameter angeben als deklariert? Die Antwort hat
auch hier mehrere Facetten:
Grundsätzlich ist das erlaubt.
Die explizit angegebenen Parameter entsprechen sequenziell den entsprechenden Einträ-
gen in dem Array arguments .
Die Werte für nicht explizit deklarierte Parameter stehen über die weiteren Indizes in
arguments zur Verfügung.
PrAXISTIPP: Oben im Buch wurde ja bereits angedeutet, dass JavaScript zwar
nicht im klassischen OOP-Sinn polymorph ist, man aber bei Funktionen ein
polymorphes Verhalten selbst bereitstellen kann. Die Mittel sind arguments ,
gegebenenfalls typeof und das gezielte Kontrollieren jedes Übergabeparame-
ters. Schematisch können Sie also so etwas machen:
Listing 5.50■ Schema für eine Funktion, die sich vielgestaltig verhält
function fkt() {
if (arguments.length == 0) {
// speziische Reaktion auf keinen Parameter
} else if (arguments.length == 1) {
// speziische Reaktion auf einen Parameter
}
...
} else if (arguments.length == [Maximale Anzahl Parameter] ) {
// speziische Reaktion
} else {
// Default-Reaktion
}
}
Wenn Sie dann noch mit typeof gezielt einen Datentyp beachten, haben Sie
wirklich ein polymorphes Verhalten.
5.8.8■rekursive Funktionsaufrufe
JavaScript unterstützt sogenannte Selbstaufrufe . Dies nennt man auch Rekursion oder
einen rekursiven Aufruf . Rekursive Aufrufe haben eine gewisse Ähnlichkeit mit Schleifen,
da auch damit Anweisungen wiederholt werden. Beachten Sie aber, dass rekursive Aufrufe
zwar ähnlich wie Schleifen funktionieren, aber die rekursiven Funktionsaufrufe intern auf
dem sogenannten Stack (Stapel) abgelegt und von dort wieder genommen werden, während
Schleifen damit nichts zu tun haben und über einen Speicherbereich mit Namen Heap (Hau-
fen) arbeiten. Dieser Unterschied kann sich auf die Performance 6 auswirken, aber vor allen
Dingen ist die Reihenfolge einer Verarbeitung von Bedeutung. Denn während eine Schleife
chronologisch bei jedem Durchlauf einer Schleife Anweisungen ausführt, erfolgt die Abar-
6 Wobei es an der konkreten Konstellation liegt, ob ein rekursiver Funktionsaufruf oder eine Wiederholung in
Schleifen performanter ist.
 
Search WWH ::




Custom Search