<aside> 💡 실행 컨텍스트가 정상적으로 종료되지 못하는 현상
</aside>
function add(a,b) {
let sum = a + b
return sum;
}
const sum = add(10, 20); // 함수 실행이 종료되면 sum은 메모리에서 사라짐
console.log(sum);
function outerFunc() {
let count = 0;
return function innerFinc() {
ount++;
console.log(count;
}
}
const counter = outerFunc();
counter(); // 1
counter(); // 2
counter(); // 3
counter(); // 4
⇒ 함수 실행이 종료됐는데 count가 사라지지 않고 계속 증가함
⇒ 콜스택에서 제거를 하되 실행 컨텍스트를 임시 보관함
⇒ 참조하는 코드가 제거될 때까지 임시 보관
⇒ 클로저
⇒ js상 메모리 누수가 발생하는 상황임
⇒ 클로저 코드를 사용했다면 참조를 끝낼 때 메모리 제거를 해줘야 함
counter = null; // 메모리 제거