클로저란 일반적으로 어떤 함수가 자신의 내부가 아닌 외부에서 선언괸 변수에 접근하는 것을 의미 한다.
function convertUsdToKrw(dollar) {
const rate = 1113.5;
return dollar * rate;
}
> convertUsdToKrw(5)
//5567.5
위 예시는 convertUsdToKrw함수가 선언이 되어져 있고 5를 인자로 받아 매개변수 dollar로 쓰고 있다 이때, rate변수는 함수 내부에서 선언이 되어져 있고 거기에 접근을 하고 있다.
const rate = 1113.5;
function convertUsdToKrw(dollar) {
return dollar * rate;
}
convertUsdToKrw(5)
//5567.5
위 예시는 먼저 봤던 예시에서 rate변수만 밖으로 빠져있다. 실행을 했을 때 잘 동닥하는 것을 알 수 있다.
이렇게 자바스크립트에서 함수는 매개 변수와 로컬 변수 뿐만 아니라 외부에서 선언된 변수도 자유롭게 접근을 할 수 있다. 그리고 이렇게 함수가 자신의 밖에서 선언된 변수에 접근하는 것을 클로저라고 한다.