JS
클로저 (Closure) 란?
매일매일코드일기장
2022. 3. 29. 21:16
클로저란?
클로저는 내부 함수가 정의 될 때 외부 함수의 환경을 기억하고 있는 내부 함수를 말합니다.
외부 함수안에서 선언된 내부함수는 그 외부 함수의 지역변수나 함수에 접근하여 사용 할 수 있습니다.
클로저 예시
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에서는 사용 할 수 있습니다.