클로저는 함수가 생성되는 시점에 접근 가능했던 변수들을 생성 이후에도 계속해서 접근할 수 있게 해주는 기능이다. 접근할 수 있는 변수는 그 함수를 감싸고 있는 상위 함수들의 매개변수와 내부 변수들이다.
클로저를 사용한 간단한 코드
function makeAddFunc(x) {
return function add(y) {
return x+y;
}
}
const add5 = makeAddFunc(5);
console.log(add5(1)); // 6
const add7 = makeAddFunc(7);
console.log(add7(1)); //8
console.log(add5(1)); //6
add 함수는 상위 함수인 makeAddFunc의 매개변수 x에 접근할 수 있다. add5 함수가 생성된 이후에도 상위 함수를 호출할 때 사용했던 인수에 접근할 수 있다. 중간에 makeAddFunc(7)이 호출되지만 add5에 영향을 주지는 않는다. 즉, 생성된 add 함수별로 클로저 환경이 생성된다.
'JavaScript' 카테고리의 다른 글
| ES6+ 함수의 화살표 함수 알아보기 (0) | 2021.04.05 |
|---|---|
| es6+ 객체 비구조화 그리고 강화된 ES6+ 함수의 기능 (0) | 2021.04.05 |
| ES6+ 자바스크립트 복습! 객체와 배열의 사용성 개선하기 (0) | 2021.03.30 |
| ES6+ 자바스크립트 복습! 변수 정의 var, const, let에 대하여 (0) | 2021.03.30 |