클로저란, 외부 변수를 기억하고, 그 변수에 접근할 수 있는 함수를 뜻합니다. 자바스크립트는 중첩 함수로 쉽게 클로저를 구현할 수가 있는데, 원래 함수 내부 변수를 스코핑할 때는 렉시컬 스코핑을 따라서 그 전역 변수에 있는 값을 참조하게 됩니다. 하지만, 함수 내부에 다른 함수를 위치시킴으로서 내부 함수가 감싸는 함수의 environment를 참조하게 되고, 값을 저장하는 것이 가능하게 됩니다. 즉, 다시 말하자면, 클로저함수는 자신이 생성될 때의 환경을 기억하는 함수라고 할 수 있습니다.
출처: [개발자 아저씨들 힘을모아]