closure
11 Feb 2018클로저란
“A closure is the combination of a function and the lexical environment within which that function was declared.” 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다.
- 클로저는 자바스크립트 고유의 개념이 아니라 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어 (Erlang, Scala, Haskell, Lisp…)에서 사용되는 중요한 특성이다.
- 클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코프)에 접근할 수 있는 함수
lexical environment
클로저는 자신이 생성될 때의 환경(스코프)
자유변수(Free variable)
클로저에 의해 참조되는 외부함수의 변수 즉 outerFunc 함수의 변수