JavaScript
클로저 개념
hjworld
2021. 4. 5. 02:11
클로저는 함수가 생성되는 시점에 접근 가능했던 변수들을 생성 이후에도 계속해서 접근할 수 있게 해주는 기능이다. 접근할 수 있는 변수는 그 함수를 감싸고 있는 상위 함수들의 매개변수와 내부 변수들이다.
클로저를 사용한 간단한 코드
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 함수별로 클로저 환경이 생성된다.