Java Reference
In-Depth Information
Namen sind dann die Bezeichner für besagte lokale Variablen in der Funktion, über die die
übergebenen Werte verfügbar sind. Und die Anzahl der notwendigen Argumente beim Auf-
ruf der Funktion ist durch die Anzahl der Parameter in der Deklaration speziiziert.
Es gibt in JavaScript jedoch zusätzlich innerhalb jeder Funktion und auch Methode eine
spezielle implizite Variable mit Namen arguments . Diese ist immer verfügbar und enthält
speziische Informationen über die an die Funktion übergebenen Argumente, insbesondere
über die Anzahl, denn die Argumente stellen ein Datenfeld dar und wie bei jedem Array gibt
es eine Eigenschat length . Wir nutzen im folgenden Beispiel eine Schleife, um über die
Einträge im Datenfeld zu iterieren.
HInTErGrunDInFOrMATIOn: Für Leser mit objektorientiertem Hinter-
grund - mit Hilfe des Tokens arguments realisiert JavaScript ein polymorphes
(vielgestaltiges) Verhalten in Hinsicht auf Funktionen oder Methoden. Eine echte
Polymorphie gibt es in JavaScript nicht, denn für die Identiizierung einer Funk-
tion wird ausschließlich der Bezeichner der Funktion verwendet. Die Parameter
spielen keine Rolle, was wir in den nachfolgenden Beispielen noch zeigen. Aber
man kann bei einer internen Verwendung von arguments in der Tat eine Funk-
tion so programmieren, dass man im Sinn der OOP von Polymorphie sprechen
kann - insbesondere wenn Sie dann noch beachten, dass die Datentypen der
Argumente natürlich ebenfalls lexibel sind.
Schauen wir uns ein Beispiel an (kap5_25.html):
Listing 5.48■ Informationen über Parameter an eine Funktion via arguments
...
<script type="text/javascript">
function fkt() {
var ausgabe = "Anzahl der Argumente: " + arguments.length;
for (var i = 0; i < arguments.length; i++) {
ausgabe += "\nArgument " + (i + 1) + ": " + arguments[i] +
"\nTyp des Parameters: " + typeof arguments[i];
};
alert(ausgabe);
}
</script>
</head>
<body>
<h1>Flexible Anzahl an Parametern mit arguments</h1>
<a href="javascript:fkt()">fkt()</a><br />
<a href="javascript:fkt(new Date())">fkt(new Date())</a> <br />
<a href="javascript:fkt('Die','Antwort','ist','42')">
fkt("Die", "Antwort", "ist", "42")</a><br />
<a href="javascript:fkt(1,2,3,5,7,11,13,17,19)">
fkt(1,2,3,5,7,11,13,17,19)</a><br />
<a href="javascript:fkt(1,'Text',new Date(),3.14)">
fkt(1,"Text",new Date(),3.14)</a>
</body>
</html>
 
Search WWH ::




Custom Search