본문으로 건너뛰기

Closure

질문

closure를 실무 예시로 설명해 주세요.

답변 초안

closure는 함수가 만들어질 때의 scope를 기억해서, 바깥 함수 실행이 끝난 뒤에도 그 변수에 접근할 수 있는 구조입니다.

예시

function createCounter() {
let count = 0;

return function increment() {
count += 1;
return count;
};
}

const counter = createCounter();
counter(); // 1
counter(); // 2

실무 주의점

  • React hook callback에서 오래된 값을 잡으면 stale closure 문제가 생길 수 있습니다.
  • 큰 객체를 closure로 오래 잡고 있으면 메모리 유지 시간이 길어질 수 있습니다.

참고 자료

  • TBD