클로저란 어떤 함수 A에서 선언한 변수 a를 참조하는 내부함수 B를 외부로 전달할 경우
A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상
function sandwichMaker(magicIngredient) { return function(filling) { return magicIngredient + " and " + filling ; }; }
- 함수는 외부 스코프에 선언된 변수를 참조할 수 있다
- 클로저는 자신을 생성한 함수보다 더 오래 지속된다
- 클로저는 내부적으로 외부 변수에 대한 참조를 저장하고, 저장된 변수를 읽고 갱신할 수 있다