Day71 - [js]클로저
2021. 5. 27. 20:39ㆍJava Script
이번에는 java script 의 클로저 에 대해서 알아 봅시다.
클로저
var 변수는 함수단위 스코프를 가지고 있기 때문에, 함수 내에서 선언 및 초기화 된 변수는 함수 바깥에서 사용하지 못한다고 했습니다.
그렇기 때문에, 함수 바깥에서 함수 안에 선언된 var a 를 사용하지 못하는데, 이러한 a 를 사용할 수 있도록 해주는 것이 클로저 입니다.
클로저는, 함수 내에 또 함수를 만들어서 a에 접근하는 것을 의미 합니다.
※ java script의 함수는 실행환경의 상태를 기억 합니다.
내부 익명 함수가 외부함수 method()의 값을 바꿀수 있는(접근할 수 있는) 키를 가지고 있습니다.
외부함수 밖에서 내부함수가 호출되더라도 외부함수에 있는 지역변수 a에 접근가능한데, 이런 반환함수를 클로저라고 합니다.
method() 가 끝나는 순간 var a의 값은 사라지게 됩니다.
하지만, method() 안에 있는 "리턴값이 있는 익명함수(클로저)" 는 var b 에 저장이 되고, a값이 사라지더라도 b 를 실행하게 되면 a의 값을 확인 할 수 있습니다.
이런 클로저 를 이용해서, getter 와 setter 를 만들 수 있습니다.
아래는 setter 입니다.
'Java Script' 카테고리의 다른 글
Day72 - [js]이벤트 (0) | 2021.05.30 |
---|---|
Day71 - [js]객체와 JSON함수 (0) | 2021.05.27 |
Day71 - [js]전역변수 vs 지역변수 (0) | 2021.05.27 |
Day71 - [js]함수, 익명함수, 화살표함수, 즉시실행함수 (0) | 2021.05.27 |
Day70 - [js]연산자, 배열, 조건문, 반복문, 제어문 (0) | 2021.05.27 |