function makeAdder(x) {
return function(y) {
return x + y;
}
}
const add3 = makeAdder(3);
console.log(add3(2)); // 5
add3
함수가 생성된 이후에도 상위 함수인 makeAdder
의 x
에 접근 가능function makeCounter() {
let num = 0; // 내부 함수로만 접근이 가능함. 은닉화
return function () {
return num++;
};
// 내부 함수 function에서 외부 함수 makeCounter의 변수 num에 접근함
}
let counter = makeCounter();
console.log(counter()); // 0
console.log(counter()); // 1
console.log(counter()); // 2