javascript/javascript 심화지식
어휘적 환경(Lexical Environment) 클로저
honey.kikiki
2021. 7. 12. 23:35
728x90
어휘적 환경(Lexical Environment)
closeure 클로저
함수와 렉시컬 환경의 조합
함수가 생성될떄 당시의 외부 변수를 기억
생성 이후에도 계속 접근 가능
let one;
one = 1;
function addOne(num) {
console.log(one + num); //
}
addOne(5); //6
내부Lexical 환경
one = 1
// addOne : function
전역Lexical 환경
num = 5
-----------------------------------------------
function makeAdder(x) {
return function (y) {
return x + y;
};
} // 5
const add3 = makeAdder(3); // x
console.log(add3(2)); // y
내부Lexical 환경
// makeAdder:function
// add3:Function
makeAdder Lexical 환경
x : 3
익명함수 Lexical 환경
y : 2
----------------------------------------------------
function makeCounter() {
let num = 0; //은닉화
return function () {
return num++;
};
}
let counter = makeCounter();
console.log(counter()) // 0
console.log(counter()) // 1
console.log(counter()) // 2
마음대로 숫자를 조정할수없다 카운터호출을 더하지 않는이상