클로져(Closure)가 뭐지?

2019-09-26
  • language
  • 클로져란

    참고

    • 외부 범위의 변수를 함수 내부로 바인딩하는 기술.
    • 함수를 만들고 그 함수 내부의 코드가 탐색하는 스코프를 함수 생성 당시의 렉시컬 스코프로 고정한 것.
    function produceAddFunc(x) {
      return function(y) {
        return x + y;
      }
    }
    

    produceAddFunc 함수는 함수를 반환하는데, 반환되는 함수는 전달받은 파라미터에 produceAddFunc 함수의 파라미터를 더해서 반환하는 함수이다. produceAddFunc 함수가 종료되더라도 x 값이 유지가 되는데 이를 클로저라 한다.

    주어진 context 바깥의 변수를 참조 하는 경우를 클로져라 보면 될 것 같다.