실행 컨텍스트 생성과정

 

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

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

 

1. 전역 코드

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

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

전역코드

전역코드

함수실행

함수실행

전역 실행 컨텍스트

실행 컨텍스트 생성

전역 실행 컨텍스트

변수 객체

변수 객체 생성

전역 실행 컨텍스트

변수 객체

[[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함수 변수 객체

"스코프 체인"

Execution Context

By Sang Jin Lee

Execution Context

  • 972