클로저2 You don't know JS yet(3-2~4) 클로저,this,prototype 클로저 전에 알아야 할 내용🔥 콜 스택(Call Stack)이 뭐냐?자바스크립트 엔진이 함수 실행을 관리하는 공간LIFO(Last In, First Out) 구조 → 마지막에 들어온 함수가 먼저 실행 완료됨함수가 호출될 때 스택에 쌓이고, 실행이 끝나면 스택에서 제거됨⚙️ 콜 스택 동작 방식함수 호출 → 콜 스택에 push(쌓임)함수 실행 완료 → 콜 스택에서 pop(제거)비동기 함수 (setTimeout, fetch 등) → 콜 스택에서 빠지고 Web APIs → Task Queue → Event Loop 통해 실행Heap 영역이 뭐냐?런타임 중에 동적으로 메모리 할당하는 공간크기가 가변적이라 필요할 때 메모리를 할당하고, 필요 없으면 해제됨JS에서 객체(Object)나 함수(Function) 같은 .. 2025. 2. 13. Closer 클로저 : 실행 컨텍스트가 정상적으로 제거(종료)되지 못하는 현상 function outerFunc() { let count = 0; return function innerFunc() { count++; console.log(count); };}const counter = outerFunc();counter();counter();counter();counter();결과 :1,2,3,4 실행할 때마다 1씩 증가한다.원래 자신의 차례가 끝나면 , 콜스택에서 본인은 제거되어야 한다.근데 innerFunc 시점으로 보면, "outerFunc이 자신의 값을 참조하네?"내 값 참조 안하면 버그가 되는데? => 그럼 나 못사라지는데? => 값이 메모리에 남아야겠다.이 현상이 "closer"가 된다... 2024. 7. 19. 이전 1 다음