Biorąc pod uwagę powyższe, można po prostu utworzyć zagnieżdżoną funkcję, aby zastąpić jakiś zlokalizowany, powtarzalny kod w funkcji (który będzie używany tylko wewnątrz funkcji nadrzędnej). Funkcja anonimowa jest tego doskonałym przykładem.
Niektórzy mogą powiedzieć, że po prostu utwórz metody prywatne (lub mniejsze bloki kodu) w klasie, ale to jest mętne, gdy bardzo specyficzne zadanie (które jest wyłączne dla rodzica) musi zostać zmodularyzowane, ale niekoniecznie dostępne dla reszty Klasa. Dobra wiadomość jest taka, że jeśli okaże się, że potrzebujesz tej funkcji gdzie indziej, poprawka jest raczej elementarna (przenieś definicję do bardziej centralnej lokalizacji).
Ogólnie rzecz biorąc, używanie JavaScript jako standardu do oceny innych języków programowania opartych na C jest złym pomysłem. JavaScript jest zdecydowanie własnym zwierzęciem w porównaniu z PHP, Pythonem, Perlem, C, C ++ i Javą. Oczywiście istnieje wiele podobieństw, ale drobiazgowe szczegóły (referencyjne JavaScript: The Definitive Guide, 6th Edition, Rozdziały 1-12 ) sprawiają, że rdzeń JavaScript jest wyjątkowy, piękny, inny, prosty i złożone w tym samym czasie. To moje dwa centy.
Żeby było jasne, nie twierdzę, że funkcje zagnieżdżone są prywatne. Właśnie to zagnieżdżanie może pomóc uniknąć bałaganu, gdy coś trywialnego wymaga modularyzacji (i jest potrzebne tylko funkcji nadrzędnej).