스코프 체인은 함수를 실행한 위치가 아닌 정의한 위치에 의해 결정된다. 즉, 스코프 체인은 함수를 호출하기 전에 이미 만들어지며, 이 덕분에 우리는 closure를 만들 수 있다. 예를 들어, 다른 함수 내부에 정의되어 있다가 전역 스코프로 반환된 함수가 있다고 가정해 볼 때, 반환된 함수는 전역 스코프에 있더라도 스코프 체인을 통해 부모 함수에 여전히 접근할 수 있다.
아래 코드는 익명 함수를 반환하는 parentFunction이라는 함수를 정의한 후 전역 스코프에서 이 함수를 호출할 것이다. 반환된 익명 함수는 parentFunction 내부에서 정의되었기 때문에 실행될 때 parentFunction의 스코프에 접근할 수 있다. 이를 가리켜 closure라 부른다.
'프로그래밍 언어 > Javascript' 카테고리의 다른 글
javascript와 servlet간의 json 송 수신 (3) | 2016.03.29 |
---|---|
hoisting (0) | 2016.03.26 |
javascript에서의 var 이용 유무에 따른 변수 scope (2) | 2016.03.26 |
로또 번호 추첨 프로그램(jquery이용) (0) | 2016.03.25 |
자바스크립트가 작동하는 방식과 HTML에서 <script>의 위치 (0) | 2016.03.23 |