✍️ 프론트 개발자 면접 질문에 많이 나온다는 클로저를 정리 해보았다. 숨 쉬듯이 많이 쓰는 패턴인데, 막상 말로 설명하려니 입이 안 떨어지기에 글로 정리해 보았다.
외부 변수를 기억하고, 외부 변수에 접근 할 수 있는 내부 함수.
function outerFunc() {
let x = 10;
let innerFunc = function () {
console.log(x);
};
return innerFunc();
}
outerFunc(); // 10
현재 상태를 기억하고 변경된 상태 값 유지
const counter = (function(){
let count =0;
return function(){
++count;
console.log(count);
}
}());
counter();
전역 변수 사용 억제
let count = 0;
const counter = function(){
return ++count;
}
counter();
정보 은닉
counter()
호출 코드만 보고서는 counter 함수 안에 존재하는 변수 값(=count)을 알 수 없음.