클로저[Closure]

gak·2023년 1월 4일
0

클로저란?

클로저란, 중첩 함수가 상위 스코프의 식별자를 참조하고 있고 중첩 함수가 외부함수보다 더 오래 유지되는 경우에 한정하는것이 일반적이다.

Example of Closure

function foo() {
  const x = 10;
  
  function bar() {
    console.log(x);
  };
  
  return bar;
};

const bar = foo();

위 예시에서 클로저의 2가지 조건을 만족한다.

  1. 내부함수가 외부함수보다 생명 주기가 길다.
    -> 외부함수 foo 함수의 실행이 끝나서 죽어도, bar 함수는 bar 라는 변수에 저장되어 남아있다.

  2. 내부함수 bar 함수가 상위 스코프의 지역변수 x 를 참조하고 있다.

쉽게 설명해서.. 아버지의 오메가 시계 느낌이랄까?

아버지가 돌아가신다음 아들은 유품으로 오메가 시계를 받았다. 오메가인 이유는 내가 오메가를 좋아해서.
아들은 오메가를 보며 아버지를 떠올린다.

이 예시가 딱 클로저이다.

profile
Hello. I'm Front-End Developer Trying to Create Valuable Things.

0개의 댓글