클로저
- 함수가 자유 변수에 대해 닫혀있다는 의미
- 외부 함수보다 중첩 함수가 더 오래 유지되는 경우 중첩 함수는 이미 생명 주기가 종료한 외부 함수의 변수를 참조할 수 있음, 이러한 중첩 함수를 클로저라고 부름
- 자유 변수 : 클로저에 의해 참조되는 상위 스코프의 변수
클로저의 활용
- 클로저는 상태를 안전하게 변경하고 유지하기 위해 사용
- 상태가 의도치 않게 변경되지 않도록 안전하게 은닉, 특정 함수에게만 상태 변경 허용
캡슐화와 정보 은닉
- 캡슐화 : 객체의 상태를 나타내는 프로퍼티와 동작인 메서드를 하나로 묶는 것
- 정보 은닉 : 객체의 특정 프로퍼티나 메서드를 감출 목적으로 사용 -> 정보 보호, 객체 간 의존성(결합도)를 낮춤