Drei Hauptgründe, die mir einfallen:
- Zugriff auf den übergeordneten Bereich
- Privatsphäre
- Reduzierung der in höheren Bereichen definierten Namen
Zugriff auf übergeordnete Bereiche : Inline-Funktionsdefinitionen ermöglichen dem Inline-Code den Zugriff auf Variablen, die in übergeordneten Bereichen definiert sind. Dies kann für viele Dinge sehr nützlich sein und bei richtiger Ausführung die Menge oder Komplexität des Codes verringern.
Wenn Sie den Code in eine außerhalb dieses Bereichs definierte Funktion einfügen und dann den Code aufrufen, müssen Sie einen beliebigen übergeordneten Status übergeben, auf den der Code zugreifen soll.
Datenschutz: Code in einer anonymen Inline-Definition ist privater und kann von keinem anderen Code aufgerufen werden.
Reduzierung der in höheren Bereichen definierten Namen: Dies ist besonders wichtig, wenn Sie im globalen Bereich arbeiten. Bei einer anonymen Inline-Deklaration muss jedoch im aktuellen Bereich kein neues Symbol definiert werden. Da Javascript von Haus aus keine Namespaces erfordert, ist es ratsam, nicht mehr globale Symbole zu definieren, als nur minimal erforderlich sind.
Editorial: Es scheint zu einer kulturellen Angelegenheit in Javascript geworden zu sein, bei der anonymes Inline-Deklarieren irgendwie als "besser" angesehen wird, als eine Funktion zu definieren und aufzurufen, selbst wenn der Zugriff auf den übergeordneten Bereich nicht verwendet wird. Ich vermute, dies lag anfangs an dem Problem der globalen Namespace-Verschmutzung in Javascript, dann vielleicht an Datenschutzproblemen. Aber es hat sich mittlerweile zu einer kulturellen Sache entwickelt und man kann es in vielen öffentlichen Code-Körpern (wie den von Ihnen erwähnten) sehen.
In Sprachen wie C ++ halten es die meisten wahrscheinlich für eine weniger als ideale Praxis, eine Riesenfunktion zu haben, die sich über viele Seiten / Bildschirme erstreckt. Natürlich ist in C ++ ein Namespace integriert, es bietet keinen Zugriff auf den übergeordneten Bereich und verfügt über Datenschutzfunktionen, so dass die Lesbarkeit / Wartbarkeit die Hauptgründe für die Verwendung des Codeausdrucks darstellt, um auf den Datenschutz und den Zugriff auf den übergeordneten Bereich zuzugreifen. JS scheint einfach in eine andere Richtung motiviert worden zu sein, und es ist zu einer kulturellen Sache innerhalb der Sprache geworden, selbst wenn die Dinge, die diese Richtung motiviert haben, in einem bestimmten Fall nicht benötigt werden.