클로져(Closure)가 뭐지?
2019-09-26
클로져란
- 외부 범위의 변수를 함수 내부로 바인딩하는 기술.
- 함수를 만들고 그 함수 내부의 코드가 탐색하는 스코프를 함수 생성 당시의 렉시컬 스코프로 고정한 것.
function produceAddFunc(x) {
return function(y) {
return x + y;
}
}
produceAddFunc
함수는 함수를 반환하는데, 반환되는 함수는 전달받은 파라미터에 produceAddFunc
함수의 파라미터를 더해서 반환하는 함수이다.
produceAddFunc
함수가 종료되더라도 x 값이 유지가 되는데 이를 클로저라 한다.
주어진 context
바깥의 변수를 참조 하는 경우를 클로져라 보면 될 것 같다.