클로저는 “함수 + 그 함수가 만들어진 환경”이 함께 남는 구조다
바깥 함수가 끝났는데도 안쪽 함수가 count를 계속 바꿀 수 있다면, 함수 객체가 생성 시점의 환경을 붙잡고 있기 때문입니다.
1. counter 생성 시점
let count = 0; 지역 변수가 만들어진다.
return function() 안쪽 함수가 밖으로 반환된다.
반환된 함수가 count 환경을 함께 기억한다.
2. counter 호출 시점
counter() 기억된 환경으로 들어간다.
count++ 같은 변수를 이어서 수정한다.
호출 결과가 1, 2, 3처럼 누적된다.
판정 문장: 함수가 끝난 뒤에도 내부 함수가 바깥 변수를 기억하면 클로저입니다.