inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중고급: 엔진 핵심

3. 실행 콘텍스트 실행 과정, [정리 시간]

정리 시간

해결된 질문

180

김나연

작성한 질문수 3

1

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로 값을 찾고 이것을 리턴한다.

저는 이렇게 이해했는데 제가 이해한게 맞을까요?

javascript

답변 2

1

김나연

넵! 꽤 복잡한 내용인데 좋은 강의 덕분에 이해가 잘되는 거 같아요! 감사합니다~

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