molily: Verschachtelte Funktion von außen aufrufen

Beitrag lesen

ich würde gerne eine Funktion, die innerhalb einer anderen Funktion definiert ist von außen aufrufen?

Wieso deklarierst du Funktionen verschachtelt, wenn du das beste Feature von JavaScript – die Kapselung von Daten mittels Funktions-Scopes – dann gleich wieder rückgängig machst?

Durch die Verschachtelung von Funktionen lassen sich JavaScript-Programme sehr gut strukturieren, sodass man eben nicht das globale Objekt mit hunderten losen Objekten zuballern muss. Siehe dazu Organisation von JavaScript.

Zur Erklärung: Verschachtelte Funktionen sind standardmäßig lokale Variablen. Wenn du this.Funktion = function () {}; notierst, so fügst du dem globalen Objekt eine Methode hinzu. Vorausgesetzt ist, dass this im jeweiligen Kontext auf window zeigt. Das ist nicht immer der Fall, daher wäre es sinvoller, direkt window anstatt this zu schreiben.

Du könntest auch einfach Funktion = function () {}; schreiben, ohne »var« davor. Das erzeugt ebenfalls eine globale Variable. Allerdings ist die explizite Schreibweise mit window.globaleVariable = wert; vorzuziehen, um lokale Variablen von absichtlich gesetzten globalen zu unterscheiden.

Mathias