[javascript] 클로저와 실행 컨텍스트의 차이점은 무엇인가?
  1. 실행 컨텍스트(Execution Context): 실행 컨텍스트는 코드가 실행되는 환경을 추상화한 것입니다. 함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되며, 해당 함수의 변수 및 스코프 정보를 담고 있습니다. 실행 컨텍스트는 스코프 체인, 변수 객체, this 등의 정보를 포함하고 있습니다.

  2. 클로저(Closure): 클로저는 함수와 함수가 선언될 당시의 렉시컬 환경(lexical environment)과의 조합입니다. 함수가 자유 변수(free variable)에 대한 참조를 유지하고 있는 상태를 가리킵니다. 이는 함수가 선언된 위치에 따라 해당 함수의 스코프가 결정되는 렉시컬 스코프의 특성과 관련이 있습니다.

따라서, 실행 컨텍스트는 코드가 실행되는 환경을 추상화한 것이고, 클로저는 함수와 해당 함수가 선언된 렉시컬 환경과의 조합을 가리키는 개념입니다. 이 두 가지는 서로 다른 측면에서 자바스크립트의 동작 및 스코프에 영향을 미치는 중요한 개념입니다.

더 자세한 정보는 아래의 참고 자료를 참고하시기 바랍니다: