정리 시간
function book(){
function get() {
return point;
};
var point = 123;
return get();
};
console.log(book());
1. function 키워드를 만나 function 오브젝트를 생성하고 [[Scope]] 를 글로벌 스코프로 설정한다.
2. book() 함수가 호출되어 book() 함수 안으로 들어간다.
3. 실행 컨텍스트를 생성한다.
- 위에서 글로벌 스코프로 설정 해둔 [[Scope]]를 외부 렉시컬 환경 참조에 설정한다.
- 환경 레코드에 {get : function 오브젝트}, {point:undefined} 로 설정한다.
4. function 키워드에 의해 get function 오브젝트가 생성되고 [[Scope]]에 book 스코프를 설정한다.
5. point 변수에 123 값이 할당 된다.
5. get() 함수가 호출되어 get()으로 들어간다.
- 새로운 실행 컨텍스트가 생성된다.
- 새로운 실행 컨텍스트의 환경 레코드에서 먼저 찾고 없으면 외부 렉시컬 환경 참조에서 point를 찾는다.
- 외부 렉시컬 환경 참조에서 point로 값을 찾고 이것을 리턴한다.
저는 이렇게 이해했는데 제가 이해한게 맞을까요?
답변 2
0
예, 맞습니다. 1번, 설정이 반대입니다. [[scope]]에. 2번, 호출되면 먼저 만들고 들어갑니다. 3번 글로벌 스코프를. 4번, book 스코프가 아니라 get의 스코프입니다.
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
202
0
정리시간입니다.
6
227
0
코딩시간 입니다.
1
221
0
선생님 스코프 질문이 있습니다.
1
239
0
[정리시간] 해보았습니다!
0
175
0
선생님 질문있습니다!!
0
159
0
질문드려도 될까요 선생님..
0
216
0





