#11. Closure

Seulyi Yoo·2022년 7월 8일
0

javascript grammar

목록 보기
11/20
post-thumbnail

함수와 렉시컬 환경의 조합

함수가 생성될 당시의 외부 변수를 기억

생성 이후에도 계속 접근 가능

// 어휘적 환경(Lexical Environment)

let one;
one = 1;

function addOne(num) {
  console.log(one + num); // 6
}

addOne(5);

function makeAdder(x){
  return function(y) {
    return x+y;
  }
}

const add3 = makeAdder(3); // function(y)
console.log(add3(2)); // 5 // y:2, 3+2=5 

const add10 = makeAdder(10); // x:5, function(10)
console.log(add10(5)); // 15 // y:10, 10+5=15
console.log(add3(1)); // 4 // y:1, 3+1=4

function makeCounter(){
  let num = 0; // 은닉화

  return function(){
    return num++;
  };
};

let counter = makeCounter();

console.log(counter()); // 0
console.log(counter()); // 1
console.log(counter()); // 2
profile
성장하는 개발자 유슬이 입니다!

0개의 댓글