issues
search
kgneng2
/
blokg
blog
MIT License
0
stars
0
forks
source link
Closure
#7
Open
kgneng2
opened
4 years ago
kgneng2
commented
4 years ago
Overview
클로저는 외부 변수를 기억하고 외부 변수에 접근 할 수 있는 함수를 의미한다.
javascript에서는 모든 함수가 자연스럽게 closure가 된다.
javascript 함수는 숨긴 property인 [[Environment]]를 이용해 자신이 어디서 만들어 진지 기억한다. 함수 내부 코드는 [[Environment]]를 사용해 외부변수에 접근한다.
클로저는 무엇인가?
클로저 정의를 대답
js에 모든 함수는 클로저인데, 함수에서 [[Environment]]를 가지고 있는데, 여기에 함수가 만들어진 곳의 렉시컬 환경에 대한 참조가 저장됩니다.
렉시컬 환경이란 일단 전역 렉시컬 환경을 가지고 있고, 함수마다 지역 렉시컬 환경을 가지고 있습니다.
지역 렉시컬 환경에서 variable값을 찾지 못하면 그 밖에 있는 렉시컬환경에서 찾아갑니다.
고로 js function은 외부 변수에 접근할수 있는 함수 이므로 클로저입니다.
Reference
https://ko.javascript.info/closure
Overview
클로저는 무엇인가?
Reference