클로저 : 함수와 그 함수가 선언된 렉시컬 환경과의 조합 const x = 1;// innerFunc()에서는 outerFunc()의 x에 접근할 수 없죠.// Lexical Scope를 따르는 프로그래밍 언어이기 때문function outerFunc() { const x = 10; innerFunc(); // 1}function innerFunc() { console.log(x); // 1}outerFunc();출력은 1이 나온다. outerFunc 안에 x가 10으로 할당되어있고, 그곳에서 innerFunc를 실행했기 때문에 10이 출력될 것이라고 생각할 수도 있지만, JS엔진은 함수를 어디서 '호출'했는지가 아니라, 어디에 '정의'했는지에 따라 스코프를 결정하기 때문이다.이를 어휘적..