molily: Namensauflösung in benannten Funktionen

Beitrag lesen

Warum man das macht? Um rekursiv programmieren zu können, braucht man immer eine Referenz auf die Funktion selber; in ECMAScript hat man sich vermutlich eben wegen der ziemlich starken Dynamik der Namensauflösung für diese Lösung entschieden. Eine andere denkbare Lösung wäre z.B.

... arguments.callee.

Und eigentlich ist es doch auch eine ganz vernünftige Lösung.

Finde ich nicht. Ich halte die Sonderregel für überflüssig und verwirrend. Wieso diese Unterscheidung?

Übrigens erzeugt eine Function Expression mit Namen im IE eine Variable im aktuellen Scope. Daher sollte man das in der normalen browserübergreifenden JavaScript-Entwicklung tunlichst lassen.

(function () {
   alert(function funcExpr () {});
   alert(typeof funcExpr);
})();

Mathias