outerEnvironmentReference 질문
안녕하세요.
책에서 OuterEnvironmentReference는 현재 함수가 선언될 당시의 외부 LexicalEnvironment를 참조한다고 하였는데 이는 VariableEnvironment와 같은디 궁금합니다.
그리고 LexicalEnvironment의 environmentRcord는 선언된 식별자를 포함해 let과 const 등까지 포함하는지 궁금합니다..
또 ThisBinding이 variableEnvironment나 LexicalEnvironment의 environmentRecord에 속해 있는 게 아니라 따로 떨어져있는게 맞는지가 궁금합니다
Answer 1
2
아뇨, 외부의 LexicalEnvironment가 맞습니다. 외부의 변경사항을 계속 참고해야 하므로 '변경되지 않는' VariableEnvironment를 참조하는 것은 의미가 없겠죠.
let, const도 물론 포함합니다.
ES2022 현재 시점에서는 environmentRecord에 속하는게 맞습니다.
ECMAScript 명세서는 실행컨텍스트에 대해 ES5.1, ES2015 및 그 이후에도 매번 설명이 달라지고 있습니다. 해마다 새로 추가되는 기능들을 기존 개념에 포섭하는 것이 불가능한 경우가 발생하기 때문입니다. 그러다보니 이를 계속해서 팔로우업하는게 과연 의미가 있을까 하는 생각이 듭니다.
실행컨텍스트는 명세서에서도 어디까지나 개념상의 이론일 뿐이라고 강조합니다. 따라서 내/외부 환경의 변경 및 참조 여부 등의 흐름을 이해하면 충분합니다. 완벽히 이해하려 하기보다는 흐름만 이해하고 넘기시는 편이 좋을거라 생각해요.
ES2015: Lexical Environments and Environment Record values are purely specification mechanisms and need not correspond to any specific artefact of an ECMAScript implementation. It is impossible for an ECMAScript program to directly access or manipulate such values. (https://262.ecma-international.org/6.0/#sec-executable-code-and-execution-contexts)
ES2022: Environment Records are purely specification mechanisms and need not correspond to any specific artefact of an ECMAScript implementation. It is impossible for an ECMAScript program to directly access or manipulate such values. (https://262.ecma-international.org/#sec-executable-code-and-execution-contexts)
인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유
0
59
1
setTimeout 에서 this
0
81
1
2강부터 영상이 나오지 않습니다.
0
175
1
자바스크립트 주석에 이상한 점이 있어서 문의드립니다.
0
219
2
return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.
1
259
1
클래스 static 멤버
1
253
1
실행컨텍스트와 스택프레임
2
567
1
프로토타입으로 상속할때 브릿지 사용 이유
0
320
1
호이스팅 관련 질문
1
335
1
책 66p. 예제 3-2 질문입니다.
0
356
1
강의 내용 10:58 캡슐화 질문입니다.
1
398
1
강의 내용 5:10 질문입니다.
1
422
2
전역 공간에서의 this
0
426
2
18:31 addEventListener의 this
1
480
1
실행 컨텍스트와 클로저에 대해 질문드립니다.
1
448
1
Object.prototype.constructor의 [[prototype]] ?
1
658
1
함수를 값으로 할당할 때
2
457
1
15:54 'ddd' 사라지는 오류?
4
375
1
프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.
1
404
1
기본형/가변형 질문입니당
0
333
0
선생님 그러면 섹션 0만 봐도 무방한가요!?
0
335
1
Hoisting과 environmentRecord에 관한 질문입니다.
1
291
1
안녕하세요, 데이터 변경 질문입니다.
0
328
1
선생님 class 상속파트에서 궁금한게 있습니다.
0
235
1

