1) 클로저 개요
2) 렉시컬 스코프 및 클로저와 렉시컬 환경
렉시컬 스코프
JS엔진은 함수가 호출된 곳이 아닌 정의된 곳에 따라 상위 스코프가 결정된다.
outer: 정의된 환경에 대한 정보를 저장하는 곳
참조카운트가 0이 아니기 때문에 Garbage Collector에 의해 수거되지 않는다.
3) 클로저 구분
4) 클로저의 활용
클로저는 상태가 의도치 않게 변경되지 않도록 특정 함수에게만 상태 변경을 허용하고 유지하기 위해 사용한다.
즉시 실행 함수
5) 캡슐화와 정보 은닉
캡슐화: 프로퍼티와 메소드를 하나로 묶는 것
정보 은닉(information hiding)