클로저

    [33-js-concepts] 21. 클로저 (Closures)

    클로저가 뭐야? 함수와 함수가 선언된 어휘적 환경의 조합입니다. 함수 밖에서 선언된 변수를 함수 내부에서 사용할 때 클로저가 생성됩니다. function outer() { const name = 'leehyowon'; function inner() { console.log(name); } return inner; } const innerFunc = outer(); innerFunc(); 이제 var innerFunc = outer()를 통해서 inner 함수를 반환받게 되는데, 일반적으로 함수가 종료되면 메모리에서 소멸하기 때문에 아래와 같은 모습을 하게됩니다. 때문에 일반적으로, innerFunc를 호출해도 name에 대한 참조는 메모리에서 소멸하여 호출이 불가하게 됩니다. 하지만 클로저는 이러한(외부..