(1) 실행 중인 함수의 실행 절차에 대한 정보는 함수의 실행 컨텍스트에 저장된다.
(2) 실행 컨텍스트는 함수 실행에 대한 세부정보를 담고 있는 데이터 구조이다.
(3) 제어흐름의 현재위치, 변수의 현재 값 등의 상세 내부정보가 담겨있음
--> 함수를 실행(호출)할수록 실행컨텍스트 계속 저장되어지기에 재귀의 깊이가 커지면 그만큼의 메모리를 차지하게 됨.
JavaScript 코드가 실행되는 환경으로 정의된다.
Execution context, scope chain Javascript Internals
재귀를 사용하면 코드가 짧아지고 코드 이해도가 높아지며 유지보수에도 이점이 있다. 모든 곳에서 메모리 최적화를 신경 써서 코드를 작성해야 하는 것은 아니며 우리가 필요한 것은 좋은 코드이다. 이런 이유 때문에 재귀를 사용한다.