어휘적 환경(Lexical Environment)
function makeAdder(x) {
return function(y) {
return x + y;
}
}
const add3 = makeAdder(3);
// (add3 함수가 생성된 이후에도 상위함수인 makeAdder의 x에 접근 가능)
console.log(add3(2)); // 5
const add10 = makeAdder(10);
console.log(add10(5)); // 15
console.log(add3(1)); // 4
JavaScript
복사
Closure
* 함수와 렉시컬 환경의 조합
* 함수가 생성될 당시의 외부 변수를 기억
* 생성 이후에도 계속 접근 가능