19. 클로저
📚

19. 클로저

Description
클로저에 관한 내용
Published
2023-06-07
함수는 자신의 내부 슬롯 [[Environment]]에 자신이 정의된 환경, 즉 상위 스코프의 참조를 저장한다.
외부 함수보다 중첩 함수가 더 오래 유지되는 경우 중첩 함수는
이미 생명 주기가 종료한 외부 함수의 변수를 참조할 수 있는데 이러한 중첩 함수를 클로저라고 부른다.
상위 스코프의 어떤 식별자도 참조하지 않는 경우
대부분의 모던 브라우저는 최적화를 통해 상위 스코프를 기억하지 않는다.
클로저는 중첩 함수가 상위 스코프의 식별자를 참조하고 있고
중첩 함수가 외부 함수보다 더 오래 유지되는 경우에 한정하는 것이 일반적이다.
"함수가 자유 변수에 대해 닫혀있다.", 쉽게 의역하면 "자유 변수에 묶여있는 함수"라고 할 수 있다.
자유 변수란 클로저에 의해 참조되는 상위 스코프의 변수를 의미한다.
모던 자바스크립트 엔진은 최적화가 잘 되어 있어서 클로저가 참조하고 있지 않는 식별자는 기억하지 않는다.
클로저는 상태가 의도치 않게 변경되지 않도록 안전하게 은닉(information hiding)하고
특정 함수에게만 상태 변경을 허용하여 상태를 안전하게 변경하고 유지하기 위해 사용한다.
 

 
⬇️ 출처