[JS] 클로저 (Closure)

김풀연·2021년 12월 3일
0

TIL

목록 보기
31/32

클로저(Closure)

: 한마디로 폐쇄를 뜻한다. 함수를 통해서 폐쇄된 공간(함수 스코프)을 만들 수 있는데, 변수를 폐쇄시키기 위해서 의도적으로 함수 스코프를 만들고, 이 공간과 변수에 접근할 권한을 가진 함수(클로저 함수)를 만드는 일종의 테크닉을 클로저라고 한다. 변수나 변수명을 가두기위해서 클로저를 쓰는 경우도 있다. 함수 myFunc()는 return값으로 객체를 반환하다. 그리고 이 객체 안에는 getVal1이라는 메서드가 들어있고, 이 메서드는 외부함수의 지역변수인 val1을 return한다.

변수 val1은 함수 myFunc()의 지역변수이므로 밖에서 접근할 수 없다. 하지만 외부함수의 지역변수에 내부함수인 getVal1()은 접근할 수 있다. 그리고 함수는 return을 반환하면 그 함수의 수명은 끝이 나지만, 내부함수만은 여전히 외부함수에 접근할 수 있다.
myFunc()는 getVal1()을 return하면서 외부에서 오직 getVal1()만을 통해서 접근할 수 있도록 한다. 이러한 테크닉이 클로저이고, 여기서 getVal1()이 클로저 함수이다.

profile
<strong>가보자고🚀</strong>

0개의 댓글