익명 함수는 대부분의 언어에서보다 JavaScript에서 더 많은 목적으로 사용됩니다.
먼저 네임 스페이스 및 블록 범위 지정에 사용됩니다. 최근까지 자바 스크립트에는 모듈이나 다른 종류의 네임 스페이스 메커니즘이 없었기 때문에 익명 함수를 사용하여 모듈 패턴을 통해 해당 기능을 제공하게되었습니다. 이러한 기능의 이름을 지정하면 아무런 이점이 없습니다. 더 작은 규모로, 최근까지 JavaScript의 블록 범위 지정 이 없기 때문에 비슷한 패턴이 블록 범위 지정을 모방하는 데 사용되었습니다. 루프 본문에서 가장 두드러집니다. 이 경우 명명 된 함수를 사용하는 것은 적극적으로 난독 화됩니다.
둘째, JavaScript에 덜 의존적 인 익명 함수는 종종 제어 구조를 모방하는 고차 함수와 함께 사용됩니다. 예를 들어, jQuery의 each
메소드입니다. 몇 줄 이상이 될 때마다 모든 루프 본문 또는 if-branch를 함수로 추상화하지는 않습니다. 이 경우에도 동일한 논리가 적용됩니다.
마지막 이유는 JavaScript에서 이벤트 기반 프로그래밍이 일반적이기 때문에 부주의 한 연속 전달 스타일 코드 가 생길 수 있습니다. AJAX 호출을 작성하고 콜백을 등록하면 실행시 다른 AJAX 호출을 작성하고 콜백 등을 등록합니다. 호출이 비동기가 아닌 동기식 인 경우 단일 어휘 범위에있는 일련의 코드 일뿐입니다. . 다시 한 번, 몇 줄의 직선 코드를 함수로 추상화하지 않을 것입니다.
문화적 요소가 있으며, 위와 같은 이유로 인해 익명 함수는 다른 많은 언어보다 JavaScript에서 훨씬 일반적이며 다른 많은 언어보다 편안하고 느슨하게 사용됩니다.