molily: Schneller Check, ob array und/oder HTMLCollection/NodeList/Args

Beitrag lesen

Hallo,

Wenn es die Eigenschaften erfüllt, die ich von einem Array und nur von einem Array
erwarte, dann verwende ich es als Array bzw. nenne es "Array". Wenn also ein Etwas
eine length besitzt, man auf es mit der Bracket-Methode zugreifen kann etc., dann ist's ein Array für mich.

Ja, genau.

Wäre callee aber nicht depricated,
so erfüllte doch mein Check auf das Vorhandensein dieser property die Idee von
duck typing, oder? Es wird genau die Eigenschaft abgefragt, die ich von arguments
und nur von arguments erwarte. >>Verhält sich wie arguments => ist arguments<<

Wenn du callee tatsächlich verwendest und zu diesem Zweck dessen Vorhandensein abfragst, ja. Es ist immer der Sinn von Objektabfragen, in Erfahrung zu bringen, ob das Objekt einem das bietet, was man gerade braucht. Wenn man hingegen den Typ oder andere unbeteiligte Eigenschaften/Methoden abzufragen versucht, ist nicht garantiert, dass man mit dem Objekt das tun kann, was man vorhat.

Üblicherweise wird arguments so verwendet, dass man daraus Werte mit [x] holt oder auf .length zugreift. arguments.callee wird eher selten verwendet, z.B. für Rekursion, und ist durch benannte Funktionen ersetzbar.

Mathias