본문 바로가기
Web/Javascript

[Javascript 기본 개념] Javascript 문법-클로저(Closure)

by 나비와꽃기린 2016. 6. 23.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1.1  클로저

-내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것

-클로저 예시 이미지





Ex)

function outter(){

function inner(){

var title = 'coding everybody';

alert(title);

}

inner(); //내부함수 호출

}

outter(); //outer 함수 호출

 

Ex) 내부함수는 외부함수의 지역변수에 접근할 수 있다.

 

à 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을클로저라고 한다.

 

function outter(){

var title = 'coding everybody';

function inner(){

alert(title);

}

inner();

}

outter();

 

Ex)

à outer함수의 실행이 끝났을 때 이 함수의 지역변수는 소멸되는 것이 자연스러우나,

8행에서 함수 inner를 실행했을 때 coding everybody가 출력된 것은 외부함수의 지역변수 title이 소멸되지 않았다는 것을 의미

 

function outter(){

var title = 'coding everybody';

return function(){

alert(title);

}

}

inner = outter();

inner();