728x90
반응형
클로저
-
클로저, 넌 누구냐?JavaScript 2022. 4. 27. 18:14
클로저란? 클로저(closure)는 중첩 함수에서 내부 함수가 소멸된 외부 함수의 맥락(context)에 접근할 수 있는 것을 가리킨다. 내부 함수가 외부 함수의 변수에 접근할 수 있는 이유 외부 함수가 종료되면 외부함수가 가지고 있던 변수도 같이 소멸된다. 그렇기 때문에 내부 함수 안에서 함수 밖의 변수를 사용할 수 없다고 생각할 수 있다. 하지만 렉시컬 환경에 의해서 내부 함수에서 외부 함수의 변수에 접근할 수 있다. 렉시컬 환경이란? 호출된 함수가 어디서 사용되었고, 주변에 어떠한 함수가 있는지 기록한 환경. -> 포함하는 식별자, 식별자에 바인딩된 값, 상위 렉시컬 환경에 대한 참조 ex) 민수는 성북구에 2년 동안 살았지만, 지금은 이사를 갔다. => 민수는 현재 성북구에 없지만 성북구에 살았던..