클로져에 대해서 설명해 주세요.
클로저는 함수와 함수가 선언된 어휘적 환경의 조합입니다.
어휘적 환경이 뭐죠?
=> 함수가 선언된 주변 환경을 의미합니다. 주로 외부 함수의 변수가 내부함수의 어휘적 환경에 포함됩니다. 그래서 내부 함수가 리턴되어도 나중에 클로저의 어휘적 환경에 접근하려 외부 함수의 변수에 접근이 가능한 것입니다.
그래서 클로져를 언제, 어떻게 쓰나요?
=> 자바 스크립트의 어떤 함수라도 클로저를 가지고 있습니다. 어떤 함수든 전역변수에 접근할 수 있기 때문입니다. 그래서 언제나 쓰입니다.
=> 또한, 자바 스크립트에서 private메서드를 구현하기 위해서도 클로저를 활용할 수 있습니다. 클로저 내에 있는 변수는 외부에서 접근할 수 없기 때문에, 클로져 내에 있는 변수를 활용할 수 있는 private 메서드만 따로 노출시켜서 인터페이스처럼 사용할 수 있게 됩니다.
정리하면, 클로저는 함수와 함수가 선언된 어휘적 환경의 조합이며, 특히 private 메서드 구현을 위해 알아야 하는 개념입니다.