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
마음대로 숫자를 조정할수없다 카운터호출을 더하지 않는이상
'javascript > javascript 심화지식' 카테고리의 다른 글
call, apply, bind (0) | 2021.07.13 |
---|---|
setTimeout /setInterval (0) | 2021.07.12 |
나머지 매개변수, 전개구문 / (Rest parameters, Spread syntax) (0) | 2021.07.12 |
구조 분해 할당 (Destructuring assignment) (0) | 2021.07.12 |
생성자함수 (0) | 2021.07.12 |
댓글