Closure
함수와 그 함수가 선언 되었을 때의 렉시컬 환경(lexical environment)의 조합
반환된 내부함수가 자신이 선언되었을 때의 렉시컬 환경(lexical environment)을 기억하여, 외부 함수의 범위에 대한 접근을 제공함.
코드 예시
const ClosureExample = () => {
// 외부 함수
const outerFunc = () => {
let name = 'dongwook';
// 내부 함수
const innerFunc = () => {
console.log(name);
}
// 내부 함수를 리턴
return innerFunc;
}
// 외부 함수를 실행
const callFunc = outerFunc();
// 외부 함수 실행 종료 후에도 변수에 접근이 가능
callFunc();
}