• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

3:18 부분 질문드립니다. (lexical environment)

21.06.08 14:23 작성 23.04.03 03:01 수정 조회수 129

0

3:18 쯤에 아래와 같이 설명해주셨는데요.


"이전에는 마치 함수가 종료될 때마다 execution context 가 제거되고, 그 안에 있던 lexical environment 도 제거되는 것처럼 설명을 드렸는데요.

지금과 같이 내부에서 함수가 만들어지는 경우에는 이렇게 lexical environment 가 유지가 됩니다."

 

위 내용이 헷갈려서 그러는데 아래 1), 2) 중 어떤 내용이 맞는걸까요? ㅠㅠ

"함수 A의 내부에서 또 다른 함수 B가 생성되고 함수 A의 실행이 종료될 경우" 에

1) A 함수의 execution context 는 제거되지만 A 함수의 lexical environment 는 유지가 된다.

2) A 함수의 execution context 와 A 함수의 lexical environment 모두 유지된다.

저는 "EC 안에 LE 가 생성된다"고 이해했기 때문에 2번이 맞다고 생각하고 있습니다.

 

답변 부탁드리겠습니다 ㅠㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요
execution context 는 함수의 실행 정보를 의미하기 때문에 실행이 끝나면 제거되는 게 맞습니다 (1번)

다만 함수 내부에서 새로운 함수가 만들어지는 경우에는,
생성된 함수가 부모 함수의 lexical environment 를 참조하게 되면서 lexical environment 는 삭제가 되지 않습니다
만약 내부에서 새로운 함수가 만들어지지 않았다면 lexical environment 를 참조하는 것이 없으므로 execution context 가 제거될 때 같이 사라질 거구요