클로저란?
클로저는 내부 함수가 정의 될 때 외부 함수의 환경을 기억하고 있는 내부 함수를 말합니다.
외부 함수안에서 선언된 내부함수는 그 외부 함수의 지역변수나 함수에 접근하여 사용 할 수 있습니다.
클로저 예시
function outter() { // 외부 함수
var data = 1;
function inner() { // 내부 함수
return data;
}
return inner();
}
outter 함수 안에는 지역변수 data와 내부 함수 inner가 선언 되어있고 inner 함수는 지역변수 data를 반환하고 있습니다.
클로저 함수 호출
var func = outter();
console.log(func);
outter 함수의 반환 값은 inner 함수입니다. inner 함수를 호출해 보았습니다.
결과
1
지역변수 data의 값 1이 출력되었습니다. 원래는 outter 함수를 호출하지 않았기 때문에 지역변수 data를 사용하지 못하는 것이 일반적이지만 JS에서는 사용 할 수 있습니다.
'JS' 카테고리의 다른 글
자바스크립트 배열 메서드 3: reduce (0) | 2022.03.29 |
---|---|
자바스크립트 배열 메서드 2: map (0) | 2022.03.29 |
자바스크립트 배열 메서드 1: forEach (0) | 2022.03.29 |
호이스팅이란? (0) | 2022.03.24 |