클로저란?
함수 내부의 함수
함수의 데이터의 reference(lexical environment)
의 조합
클로저 함수의 특징
- 함수 내부에 함수가 존재한다.
- 내부 함수가 외부 함수의 변수에 접근한다.
- 외부 함수가 종료되어도 (call stack 에서 해제되어도) 내부의 환경 (인자 값 등)이 메모리에 저장되어 소멸되지 않는다.
- lexical environment 데이터는 stack 혹은 heap 메모리에 적절하게 할당된다.
클로저 함수 사용 시 장점
은닉성 부여
함수 내부의 데이터를 함수를 통해서만 변경하도록 만들 수 있다.