Life Developer
인생 개발자
클로저란?

내부함수가 정의될 때 외부함수의 환경을 기억하고 있는 내부함수를 말한다.

외부함수 안에서 선언된 내부함수는 그 외부함수의 지역변수나 함수에 접근이 가능하다는 말이다.

 

 

아래는 쉽게 이해할수 있는 예제이다.

 

예제에서 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