-
JavaScript 클로저MOOC/생활코딩 2016. 4. 21. 22:38반응형
2016.04.21.
- 클로저
클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. 클로저는 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용된다.
12345678function outter(){function inner(){var title = 'Hello World JavaScript Closer';alert(title);}inner();}outter();cs 자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있다. 위의 코드는 내부함수에서 외부함수로의 지역변수에 접근하여 title변수의 내용을 출력할수 있다.
12345678function outter(){var title = 'Hello World JavaScript Closer';return function(){alert(title);}}inner = outter();inner();cs
클로저는 외부함수(포함하고 있는)의 변수에 접근할 수 있는 내부 함수를 일컫습니다. 스코프 체인(scope chain)으로 표현되기도 합니다. 클로저는 세가지 스코프 체인을 가집니다: 클로저 자신에 대한 접근(자신의 블럭내에 정의된 변수), 외부 함수의 변수에 대한 접근, 그리고 전역 변수에 대한 접근. 이렇게 3단계로 구분할 수 있습니다.
내부 함수는 외부 함수의 변수뿐만 아니라 파라미터에도 접근할 수 있습니다. 단, 내부 함수는 외부 함수의 arguments 객체를 호출할 수는 없습니다. (하지만, 외부 함수의 파라미터는 직접 호출할 수 있습니다.)
클로저 예제
123456789function showName(firstName, lastName) {var nameIntro = "Your name is ";// 이 내부 함수는 외부함수의 변수뿐만 아니라 파라미터 까지 사용할 수 있습니다.function makeFullName() {return nameIntro + firstName + " " + lastName;}return makeFullName();}showName("Michael", "Jackson"); // Your name is Michael Jacksoncs 반응형'MOOC > 생활코딩' 카테고리의 다른 글
JavaScript 함수의 호출 (0) 2016.04.23 JavaScript Arguments (0) 2016.04.22 JavaScript 값으로서의 함수와 콜백 (0) 2016.04.21 JavaScript 유효범위 (0) 2016.04.19 JavaScript 정규표현식 (0) 2016.04.19