클로저 질문입니다.
279
작성한 질문수 4

getPoint 오브젝트에서 point 변수는 외부 렉시컬 환경 참조에서 찾을 수 있지만 bookParam은 어떻게 찾나요?
bookParam도 같이 외부 렉시컬 환경 참조에 바인딩 되나요?
bookParam은 book 실행 콘텍스트의 선언적 환경 레코드에 있는데 이걸 어떻게 가져다 쓸수 있는건가요?
답변 3
3
book 오브젝트의 외부 렉시컬 참조에 설정 되어있는 것도 getPoint 오브젝트의 외부 렉시컬 참조에 설정하나요? ==> 맞습니다. 다만 설명을 위해서 설정이라고 했습니다만, 참조입니다.
위코드를 실행해보니 book 오브젝트의 외부 렉시컬 참조에 설정된 value를 사용할 수 있었습니다. ==>
맞습니다. 계층적으로 밖에 있는 스코프를 참조합니다. 우선 1단계 밖에 있는 프로퍼티를 찾고, 거기에 없으면 다시 2단계 밖에 있는 프로퍼티를 찾습니다(식별자 해결). 그래도 없으면 같은 방법으로 글로벌 오브젝트까지 올라가서 프로퍼티를 찾습니다.
그러면 실행 콘텍스트 하나가 하나의 스코프로 묶여있는 개념으로 알고 있으면 될까요? ==>
실행 콘텍스트는 함수를 실행하는 단위이며, 스코프 개념과는 거리가 있습니다. 스코프를 갖고 있는 것은 Function 오브젝트입니다. Function 오브젝트 단위로 스코프가 묶여 있다고 할 수 있습니다. function 키워드를 만난 시점에 Function 오브젝트를 생성하게 되고 이때 자신이 속한 스코프를 [[scope]]에 바인딩합니다. 바인딩을 묶는다는 개념으로 사용할 수 있습니다.
0
답변 감사합니다. 궁금한게 하나 더 있습니다.

선언적 레코드에 설정된 것이 getPoint Function 오브젝트의 [[scope]]에 설정되며... ==> book 오브젝트의 외부 렉시컬 참조에 설정 되어있는 것도 getPoint 오브젝트의 외부 렉시컬 참조에 설정하나요? 위코드를 실행해보니 book 오브젝트의 외부 렉시컬 참조에 설정된 value를 사용할 수 있었습니다. 그러면 실행 콘텍스트 하나가 하나의 스코프로 묶여있는 개념으로 알고 있으면 될까요?
0
bookParam도 같이 외부 렉시컬 환경 참조에 바인딩 되나요? ==> 맞습니다.
book() 함수가 호출되면 실행 콘텍스트, 선언적 환경 레코드를 만듭니다. 그리고 우선 bookParam을 선언적 환경 레코드에 설정합니다. 그런 후 point 변수를 바인딩합니다. 즉, 파라미터, 함수 선언문, 변수 순서로 선언적 환경 레코드에 바인딩(설정)합니다. 따라서 파라미터 이름과 함수 선언문의 이름이 같으면 파라미터 값이 Function 오브젝트로 대체됩니다. 이것은 설정입니다. 한편 변수 이름을 바인딩할 때는 undefined를 파라미터 값에 설정하지 않지만, 실행 단계에서는 100을 설정합니다. 강좌 뒷 부분에서 이에 대한 설명이 나옵니다.
bookParam은 book 실행 콘텍스트의 선언적 환경 레코드에 있는데 이걸 어떻게 가져다 쓸수 있는건가요? =>
선언적 레코드에 설정된 것이 getPoint Function 오브젝트의 [[scope]]에 설정되며 getPoint() 함수가 호출되면 [[scope]]를 외부 렉시컬 참조에 설정하므로 getPoint() 함수에서 bookParam을 사용할 수 있습니다.
getBook 실습 예제중 질문드립니다!
0
419
1
__proto__ 에 대해 질문드립니다
0
315
1
호이스팅 코딩시간 풀이
0
358
1
[코딩 시간] JS {name: value} 이해
0
340
1
[[Scope]] 와 [[Environment]]는 같은 개념인가요
0
345
0
slice
0
239
0
스코프가 뭔가요?
0
307
0
어려워요
0
255
0
강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.
0
339
1
[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.
0
300
0
스코프 질문
0
253
1
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
1
542
1
this binding 논리 질문입니다.
0
279
1
파라미터 값을 매핑할 때
0
251
0
ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.
0
209
0
정리시간 입니다.
0
228
0
정리시간입니다.
6
269
0
정리 시간 입니다.
0
203
0
정리시간입니다.
6
227
0
코딩시간 입니다.
1
222
0
선생님 스코프 질문이 있습니다.
1
240
0
[정리시간] 해보았습니다!
0
175
0
선생님 질문있습니다!!
0
159
0
질문드려도 될까요 선생님..
0
217
0





