Java Script - 클로저
2024. 3. 24. 02:35ㆍCoding/Java Script
function outter(){ //외부함수
var title = 'coding everybody';
return function(){ //내부함수
alert(title);
}
}
var inner = outter();
inner();
외부함수 outter에 내부함수가 정의되어 있고, 내부함수를 return하고있다.
outter함수는 return하고 있다. 그럼에도 불구하고 내부함수에서는 외부함수의 지역변수title에서 가져와서
inner를 호출하고있다.
inner함수를 호출한다는 것은 내부함수에 있는 alert(title)이라고 하는 이 구문을 실행 하는 것인데
title은 내부함수에 존재하는 값이 아니고 외부함수 outter에 존재하는 값이다.
즉, 외부함수는 이미 종료되었는데 우리는 그 외부함수로 인해서 파생된 내부함수에서 이미 사라진 외부함수에 접근을 시도하고 있고 그 접근이 성공적으로 이뤄졌다는 것이다. 이것이 클로저의 독특한 점이다.
내부함수를 포함하고 있는 외부함수에 접근할 수 있을 뿐만 아니라 그 외부함수가 종료된 이후에도 내부함수를 통해서 접근할 수 있다라는 것이 바로 클로저의 중요한 특징이다.
*return은 함수가 종료되었다. 생을 마감한 것을 뜻한다.
*매개변수는 함수안에서 지역변수로 사용된다.
'Coding > Java Script' 카테고리의 다른 글
Java Script - 함수 : 콜백함수 (2) | 2024.03.30 |
---|---|
JavaScript - 함수 : 값으로서 함수 (0) | 2024.03.24 |
Java Script - 함수 : 유효범위 (2) | 2024.03.23 |
Uncaught SyntaxError: Unexpected string (0) | 2024.03.22 |