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