MB: Wofür verwendet man welche funktionstypen???

Beitrag lesen

moin,

du meinst wohl function expression, nicht function execution

Oh wie peinlich, sorry 😓

Eine solche Deklaration mit const hat jedenfalls den Vorteil, dass der Name später nicht mehr unbeabsichtigt überschrieben werden kann ,…].

Stimmt, das ist ein guter Einwand ☝️.

Dazu kommt, dass bei einer gewöhnlichen Funktionsdeklaration die Deklaration gehoisted wird, das heißt, sie wird implizit an den Anfang des jeweiligen Scopes gezogen. Das heißt, man kann die Funktion aufrufen, bevor man sie im Code deklariert hat. Das ist allerdings keine gute Praxis, da es den Code ebenfalls schwer lesbar macht. Solche Konstrukte kann man durch die Verwendung eines Funktionsausdrucks und die Deklaration mit const (oder let) von vorneherein ausschließen.

Sry, mir ist nicht ganz klar was du mit deiner obrigen Ausführung meist. Kanst du mir n Beispiel anführen mit mir dem bekannten hoisting?

Also zusammengefasst: Pfeilfunktion wenn möglich, gewöhnliche Funktion wenn nötig, und lieber function expression mit konstanter Variablenbindung als function statement.

sehr einleuchtend. Vielen Dank 😀

Was man bei der Verwendung von Pfeilfunktionen häufig sieht, ist allerdings eine Tendenz dazu, zu viele anonyme Funktionen zu verwenden, wie zum Beispiel bei den von dir angesprochenen Callbacks. Das macht Code manchmal unnötig schwer lesbar.

Ich schätze mal, das kann man über JSDoc Callback realsieren, wenn der code mit verschachtelte Closures unleserlich wird (nennt sich das nicht Currying 🤔?), oder macht man das nicht? Der Code mit Kommentaren jedefalls sähe dann für meine Begriffe sehr aufgebläht aus, aber für die Beschreibung der Verwendung der Aktion finde ich es sehr praktikabel.

Die von dir angesprochenen IIFEs (Immediately Invoked Function Expressions) haben heute eigentlich kaum noch sinnvolle Anwendungsfälle. […]

Das wusste ich nicht. Danke für den Hinweis 😉.

Schönen Sonntagabend wunsche ich.

lgmb

--
Sprachstörung