Private/면접

프론트엔드 면접(클로저, 클로저의 단점)

TERRY✨ 2024. 11. 9. 03:15

1. 클로저에 대해 설명해주세요.

클로저는 선언됐을때 그때의 렉시컬 스코프를 기억하는 함수입니다. 자바스크립트에서 모든 함수들을 Environment라는 프로퍼티를 가지는데 여기에 외부 함수의 변수의 참조값이 저장되어 외부 함수의 변수에 접근이 가능합니다.

https://enjoydev.life/blog/javascript/6-closure

 

JavaScript의 클로저(Closure)란? (feat. React의 useState)

JavaScript의 클로저의 원리를 쉽게 배워보고 어떤 상황에 사용되는지 알아보도록 하겠습니다.

enjoydev.life

2. 클로저의 단점과 해결방법에 대해 설명해주세요.

클로저는 외부환경의 변수를 계속 기억하고 있기 때문에 가비지컬랙터의 대상이 되지 않아 메모리 누수가 일어날 수 있다는 단점이 있습니다. 이때 null을 할당해줌으로써 메모리를 해제시킬 수 있습니다.