클로저란
- 함수와 함수가 선언된 어휘적(lexical) 환경의 조합
- 외부 함수의 변수에 접근할 수 있는 내부 함수
- 스코프 체인이라고도 불림
클로저의 3가지 스코프 체인
- 클로저 자신에 대한 접근(자신의 블럭내에 정의된 변수)
- 외부 함수의 변수에 대한 접근
- 전역 변수에 대한 접근
클로버 예시
function outerFn() {
const outerFnVar = 'outer 함수 내의 변수';
const innerFn = function () {
return (
'innerFn은 ' + outerFnVar + '와 ' + globalVar + '에 접근할 수 있습니다.');
};
return innerFn;
}
// innerFn 함수에서는 문자열을 리턴 / 어디로 ? outerFn 함수로
// outerFn 함수에서는 innerFn 함수를 리턴 / 어디로 ? 외부로
const innerFnOnGlobal = outerFn();
// outerFn 함수 실행결과를 innerFnOnGlobal에 지정
const message = innerFnOnGlobal();
// innerFnOnGlobal()에는 innerFn 함수의 주소값이 들어가 있다. 그걸 message에 지정해주면
innerFn 함수의 리턴 값이 들어감
클로저 구분
복습할 점
위의 예시에만 이해가 된 것 같으므로, 클로저 예시를 많이 보고 딥하게 이해를 해야 할 것 같음
'Front end > JavaScript' 카테고리의 다른 글
[ javascript ] - class /instance (0) | 2023.03.22 |
---|---|
[ javascript ] - 원시 자료형/참조 자료형 알아보기 (0) | 2023.03.22 |
[ javascript ] - 스코프 알아보기 (0) | 2023.03.22 |
[ javascript ] - 객체 알아보기 (0) | 2023.03.22 |
[ javascript ] - 배열 알아보기 (0) | 2023.03.21 |