Hallo Gast,
DAS ist natürlich völlig quatsch
wäre schön gewesen, wenn Du das etwas spezifiziert hättest. SO ist Deine Aussage "natürlich völlig quatsch", weil damit keiner was anfangen kann, wenn er es mal im Archiv finden sollte.
Grundsätzlich gebe ich Dir aber recht, da ist ein bedeutender Fehler drin. Das kommt halt davon, wenn man zwischen Tür und Angel ohne nachzudenken einfach irgendwas per copy-paste übernimmt. Ich gelobe Besserung.
Eine gute Erklärung hat Mitleser ja schon gegeben. Darin hat Mitleser eigentlich auch schon den Fehler hier drin beschrieben.
Aber der Vollständigkeit halber: Hier
if (arguments.length >= 5 && arguments[4] != undefined) {
/* ... */
}
wird fälschlicherweise geprüft, ob die Variable arguments[4] und die Variable mit dem _Namen_ "undefined" einen ungleichen _Wert_ haben. Richtig wäre aber eine Überprüfung, ob die Variable arguments[4] von einem _Typ_ ungleich "undefined" ist, also z.B. so:
if (arguments.length >= 5 && typeof arguments[4] !== "undefined") {
/* ... */
}
Unabhängig davon ist aber, dass JavaScript bei einem Array mit dem Index 0 zu zählen beginnt.
So, genug geschrieben. Nächstes Mal wird's hoffentlich wieder besser mit meinen Antworten.
Gruß
und-für-den-T-Rex-noch-irgendein-quatsch-hinter-Gruß
Dennis