628 Anhang
Das arguments-Objekt
4. arguments
Jede Funktion besitzt ein eigenes arguments-Objekt. Dieses Objekt taucht nicht in
der Parameterliste auf, ist aber trotzdem bei jedem Funktionsaufruf über die Variable
arguments zugänglich.
Das arguments-Objekt enthält alle an die Funktion übergebenen Argumente, auf die wie
bei einem Array zugegriffen werden kann. Mithilfe von arguments ist es beispielsweise
möglich, Funktionen zu erstellen, die sich abhängig von der Zahl der Argumente
unterschiedlich verhalten. Hier ein Beispiel für die Funktionsweise von arguments:
function printArgs() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
printArgs("eins", 2, 1+2, "vier");
JavaScript-Konsole
eins
2
3
vier
Wir definieren hier keine formalen Parameter, sondern
benutzen einfach nur das arguments-Objekt.
Mit der Array-Schreibweise können
wir auf einzelne Argumente zugreifen.
Hier rufen wir printArgs mit vier Argumenten auf.
Obwohl arguments aussieht wie ein Array, ist es eigentlich ein Objekt. Es besitzt eine length-Eigenschaft,
und Sie können über arguments iterieren oder mit eckigen Klammern auf einzelne Elemente zugreifen.
Aber damit endet die Ähnlichkeit mit einem Array auch schon. Zudem ist es möglich, die Objekte
parameters und arguments in der gleichen Funktion gemeinsam zu benutzen. Hier ein Beispiel für eine
Funktion, die eine unterschiedliche Anzahl von Argumenten übernehmen kann:
Wie ein Array besitzt auch arguments eine
length-Eigenschaft.
function emote(kind) {
if (kind === "still") {
console.log("Schauspieler sitzt still");
} else if (kind === "sagt") {
console.log("Schauspieler sagt: '" + arguments[1] +
"'");
}
}
emote("still");
emote("sagt", "Tretet zurück!");
Wir können wie üblich Parameter definieren. In diesem Fall hilft
uns der Parameter, die Verwendung der Funktion zu verstehen.
Ist das erste Argument "still", erwarten wir kein
zweites. Ist das erste Argument dagegen "sagt",
verwenden wir arguments[
1
], um das zweite
Argument auszulesen.
JavaScript-Konsole
Schauspieler sitzt still
Schauspieler sagt: "Tretet
zurück!"
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.