Was Deine Erklärung zu anonymen funktionen angeht: Das war mir schon klar. Nur ist mir nicht klar, warum der Rückgabewert einer anonymen Funktion anders behandelt werden sollte als derjenige einer nicht-anonymen.
Offensichtlich ist es dir trotzdem noch nicht klar. Eine Funktion gibt erst etwas zurück, wenn sie aufgerufen wird. Das Erzeugen einer anonymen Funktion ist nicht gleichbedeutend mit ihrer Ausführung. obj.onclick = myFunc
weist dem Eventhandler eine Referenz auf die Funktion myFunc zu. obj.onclick = myFunc()
führt myFunc aus und weist den Rückgabewert dem Eventhandler zu, dort ist er allerdings völlig nutzlos, weil ein Eventhandler auf diesem Wege eine Funktionsreferenz erwartet.
Und das erreicht man via obj.onclick = new Function("...")
(oder die alternative Schreibweise), weil der Objektkonstruktor genau das zurückgibt, was du brauchst: Eine Funktionsreferenz. Doch leider führt Javascript hier keinen Typenabgleich aus, sonst müsste es hier in allen Fällen, in denen einem Eventhandler keine Referenz zugewiesen wird, einen Fehler werfen.
Siechfred
Ich bin strenggenommen auch nur interessierter Laie. (molily)
Welcome To Carcass Cuntry || Steuerfreie Geburtsbeihilfen? || RT 221 Erfurt-Altstadt i.V.