클로저

    (충격) 클로저는 사실 최약체다?

    클로저는 어렵지 않아요 사실 클로저는 그렇게 어려운 개념은 아닙니다. 차근차근 클로저의 정의를 따라가다 보면 쉽게 이해가 가능합니다. 먼저 MDN 에서 한 번 그 정의를 찾아볼까요? 클로저는 중첩 함수가 상위 스코프 식별자를 참조하면서 외부 함수보다 중첩 함수가 더 오래 유지되는 경우에 이 중첩 함수를 클로저라고 부릅니다. ...???? ....??? ㅠㅠㅠㅠ 왜 클로저는 어려운걸까?? 클로저를 이해하기 위해서는 사실 선행 지식이 필요합니다. 이를 제쳐두고 바로 클로저는 무엇일까? 라는 궁금증에 클로저를 보게 된다면 앞에서 이해해야할 많은 지식들을 거꾸로 돌아가면서 이해하려 들게 됩니다. 문제는 이 사전지식들이 어려운 편에 속한다는 점입니다. 사실 사전지식부터 열심히 공부하고 난 다음에 클로저를 이해하려..

    [자바스크립트] 클로저

    클로저 자바스크립트에 대해 조금이라도 관심을 가진 사람들은 클로저라는 난해한 개념에 대해 들어보셨을 겁니다. 사실 대부분의 사람들은 사전지식없이 클로저를 먼저 공부하고는 합니다. 클로저는 렉시컬 환경과 렉시컬 스코프에 대한 사전 지식이 필요합니다. 먼저 MDN 에서 정의된 클로저의 정의에 대해서 이야기 해보도록 하겠습니다. MDN 에서 클로저는 함수와 그 함수가 선언된 렉시컬 환경의 조합 이라고 이야기하고 있습니다. 함수는 잘 알고 있지만, 함수가 선언된 렉시컬 환경은 딱 와닿지가 않습니다. 먼저 렉시컬 스코프에 대해서 알아보겠습니다. 렉시컬 스코프 자바스크립트 엔진은 함수의 상위스코프를 결정할 때 호출한 위치가 아닌 함수의 정의 위치에 따라 결정합니다. 이러한 특징을 렉시컬 스코프라고 부릅니다. 아래 ..