내부함수가 정의될 때 외부함수의 환경을 기억하고 있는 내부함수를 말한다.
외부함수 안에서 선언된 내부함수는 그 외부함수의 지역변수나 함수에 접근이 가능하다는 말이다.
아래는 쉽게 이해할수 있는 예제이다.
예제에서 makeFunc함수가 곧 외부함수이고 그안의 dispalyName함수가 내부함수이다.
이 displayName이라는 함수는 본인이 태어난 외부함수의 변수들의 정보를 기억을 한다.
곧 displayName이 바로 클로저이다.
그래서 아래 코드의 결과값은 Mozilla가 나온다.
function makeFunc() {
let name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
let myFunc = makeFunc(); //myFunc변수에 displayName을 리턴함
//유효범위의 어휘적 환경을 유지 myFunc();
//리턴된 displayName 함수를 실행(name 변수에 접근)
'Developer' 카테고리의 다른 글
제네릭 메소드? (0) | 2020.07.26 |
---|---|
javascript에서 자유변수란? (0) | 2020.07.26 |
서브쿼리 종류 (0) | 2020.07.25 |
서브쿼리란? (0) | 2020.07.24 |
인라인 뷰(inline view)란? (0) | 2020.07.24 |
Comments, Trackbacks