Java Reference
In-Depth Information
};
ausgabe += "\nWert von a: " + a + "\nWert von b: " + b;
alert(ausgabe);
}
</script>
</head>
<body>
<h1>Falsche Anzahl an Funktionsargumenten</h1>
<a href="javascript:fkt()">Aufruf ohne Argumente</a><br />
<a href="javascript:fkt(new Date())">
Aufruf mit einem Argument - Argument 2 fehlt</a><br />
<a href="javascript:fkt(1,2,3,5)">Aufruf mit zu vielen Argumenten</a>
</body>
</html>
Die in dem Beispiel deklarierte Funktion hat zwei Parameter. Die Bezeichner
a
und
b
ste-
hen als lokale Variablen in der Funktion zur Verfügung. Wie ist nun das Verhältnis von
arguments
zu den explizit bezeichneten Parametern? Die Antwort liefert die Logik der
Funktion, in der wir sowohl
arguments
als auch
a
und
b
explizit verwenden. Die drei ver-
schiedenen Aufrufe in der Webseite per Inline-Referenz demonstrieren zwei potenziell „fal-
sche“ Aufrufsituationen. Wir verwenden drei Aufrufsituationen, um das Verhältnis der
explizit angegebenen Parameter zu
arguments
besser zu verdeutlichen. Zuerst wird die
Funktion ohne Argumente aufgerufen. Die Länge von
arguments
ist damit also 0 und die
beiden Variablen
a
und
b
haben den Wert
undeined
.
Nach deutlicher wird das Verhältnis von explizit speziizierten Parametern und
arguments
beim zweiten Aufruf mit einem Argument. Die Werte von
a
und
arguments[0]
sind iden-
tisch. Beide Aufrufe machen verschiedene Dinge ofensichtlich:
Die explizit angegebenen Parameter und die Werte im Datenfeld
arguments
bezeichnen
sequenziell jeweils das gleiche Argument, sofern Parameter explizit speziiziert sind.
Sie können
arguments
in einer Funktion immer verwenden, egal, ob Sie Parameter bei
einer Funktion deklarieren oder nicht.
Deklarieren Sie mehr Parameter, als Sie beim Aufruf Argumente angeben, haben die
Bezeichner für die nicht initialisierten Parameter den Wert
undeined
.
Bild 5.19■
Aufruf mit einem Argument
Search WWH ::
Custom Search