실행 컨텍스트 생성과정

 

Q. "실행 컨텍스트" 가 생겨나는 경우는?

Q. "실행 컨텍스트" 가 생겨나는 경우는?

 

1. 전역 코드

2. eval() 함수로 실행되는 코드

3. 함수()를 실행하는 경우

전역코드

전역코드

함수실행

함수실행

전역 실행 컨텍스트

실행 컨텍스트 생성

전역 실행 컨텍스트

변수 객체

변수 객체 생성

전역 실행 컨텍스트

변수 객체

[[scope]]

[ List ]

변수 객체 생성 - 스코프 정보 생성

전역 실행 컨텍스트

변수 객체

[[scope]]

[ List ]

변수 객체 생성 - 스코프 정보 생성

Scope List

0

 전역 객체

전역 실행 컨텍스트

변수 객체

[[scope]]

sangziHeight : undefined

sangziAge : undefined

realizeSz

function(){

    ...

    ...
}

[ List ]

변수 객체 생성 - 변수 생성

Scope List

0

 전역 객체

전역 실행 컨텍스트

변수 객체

[[scope]]

sangziHeight : undefined

sangziAge : undefined

realizeSz

function(){

    ...

    ...
}

this

Object (=window객체)

[ List ]

변수 객체 생성 - this 바인딩

Scope List

0

 전역 객체

전역 실행 컨텍스트

변수 객체

[[scope]]

sangziHeight : '180cm'

sangziAge : '27살'

realizeSz

function(){

    ...

    ...
}

this

Object (=window객체)

[ List ]

변수 객체 생성 - 값 할당

Scope List

0

 전역 객체

realize함수

 컨텍스트

실행 컨텍스트 생성

realize함수

 컨텍스트

변수 객체

변수 객체 생성

realize함수

 컨텍스트

변수 객체

argument

[ param1, param2 ]

변수 객체 생성 - arguments 객체 생성

realize함수

 컨텍스트

변수 객체

argument

[ param1, param2 ]

변수 객체 생성 - arguments 객체 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

변수 객체 생성 - 스코프 정보 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

변수 객체 생성 - 스코프 정보 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

변수 객체 생성 - 스코프 정보 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

변수 객체 생성 - 스코프 정보 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

sangziHeight : undefined

sangziAge : undefined

print

function(){

    ...

    ...
}

변수 객체 생성 - 변수 생성

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

sangziHeight : undefined

sangziAge : undefined

print

function(){

    ...

    ...
}

this

Object (=window객체)

변수 객체 생성 - this 바인딩

realize함수

 컨텍스트

변수 객체

argument

[[scope]]

[ param1, param2 ]

[ List ]

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

sangziHeight : '173cm'

sangziAge : '29살'

print

function(){

    ...

    ...
}

this

Object (=window객체)

변수 객체 생성 - 값 할당

print 함수 컨텍스트 생성

print함수

 컨텍스트

변수 객체

argument

[[scope]]

secretInfo : [ ~~ ]

this

Object (=window객체)

[ param1, param2 ]

[ List ]

print 함수 컨텍스트 생성

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

2

print함수 변수 객체

print함수

 컨텍스트

변수 객체

argument

[[scope]]

secretInfo : [ ~~ ]

this

Object (=window객체)

[ param1, param2 ]

[ List ]

print 함수 컨텍스트 생성

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

2

print함수 변수 객체

print함수

 컨텍스트

변수 객체

argument

[[scope]]

secretInfo : [ ~~ ]

this

Object (=window객체)

[ param1, param2 ]

[ List ]

print 함수 컨텍스트 생성

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

2

print함수 변수 객체

print함수

 컨텍스트

변수 객체

argument

[[scope]]

secretInfo : [ ~~ ]

this

Object (=window객체)

[ param1, param2 ]

[ List ]

print 함수 컨텍스트 생성

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

2

print함수 변수 객체

print함수

 컨텍스트

변수 객체

argument

[[scope]]

secretInfo : [ ~~ ]

this

Object (=window객체)

[ param1, param2 ]

[ List ]

print 함수 컨텍스트 생성

Scope List

0

 전역 객체

1

 realizeSz함수 변수 객체

2

print함수 변수 객체

"스코프 체인"

deck

By Sang Jin Lee

deck

  • 893