함수를 호출하면 일어나는 일들
- Local Memory 생성: Lexical Scope에 의존
- Local Execution Context 생성
Execution Context
- 함수가 호출되면, Execution Context 생성
- Call Stack에 push
- 함수를 벗어나면 Call Stack에서 pop
- Scope 별로 생성
- 담긴 내용
- Scope 별 변수 및 함수(local, global)
- 전달 인자(arguments)
- 호출된 근원[호출한 함수](caller)
- 'this'
'this'
- 모든 함수 scope 내에서 자동으로 설정되는 특수한 식별자
- Execution Context의 구성 요소 중 하나로, 함수가 실행되는 동안 이용할 수 있음
5 Patterns of Binding 'this'
- Global: 'window'
- Fuction 호출: 'window'
- Method 호출: 부모 object
- new 키워드 이용을 통한 Constructor 호출: 새로 생성된 객체
- call() 또는 apply() 호출: 첫번째 인자로 전달되는 객체
자료 출처: 코드스테이츠(CodeStates)