[JS] 자바스크립트 실행컨텍스트 Execution Context (2)
2023. 4. 12. 22:06ㆍ개발/HTML+CSS+JS
Outer(Outer Environment Reference) 외부 환경 참조
Outer Environment Reference 란?
스코프 체인이 가능하도록 외부 환경정보를 참조하고 있다.
즉, 바깥의 L.E.(LexicalEnvironment)를 참조한다. 이때 아우터는 현재 Outer가 속한 실행컨텍스트가 호출될 당시의 정보를 가지고 있다.
(자바스크립트 엔진의 동작 매커니즘이기때문에 추상적으로 이해하자면.. 실행컨텍스트가 호출되서 새로 올라오면 그 당시의 스냅샷..이라고 해야할까..프리즈된 정보를 아우터가 가진다고 생각했다.)
Scope, Scope Chain 의 개념
여기서 스코프와 스코프체인의 개념을 한번만 짚고 넘어가자..
- Scope - 선언된 식별자가 어디까지 유효한지에 대한 범위
- Scope Chain - 식별자의 값을 가져오기 위해서 현재 위치에서 부터 유효한 범위를 탐색하고, 해당 식별자가 존재하지 않는다면 다음 상위 범위를 탐색하는 것 (반복)
다음의 예시 코드를 살펴보자.
var planet = 'Mars'
var outerFn = function () {
var innerFn = function () {
console.log("1", planet)
var planet = "Mercury"
}
innerFn()
console.log("2", planet)
}
outerFn()
console.log("3", planet)
다음의 코드가 있을때 실행컨텍스트의 환경정보는 다음과 같이 바뀌게 된다.
'개발 > HTML+CSS+JS' 카테고리의 다른 글
[JS] 자바스크립트 apply, call 개념, 활용 예제 (0) | 2023.04.13 |
---|---|
[JS] 자바스크립트 실행컨텍스트 Execution Context (3) (0) | 2023.04.13 |
[JS] 자바스크립트 배열 정렬, 조금 남다른 Array.sort() (0) | 2023.04.11 |
[JS] 자바스크립트 실행컨텍스트 Execution Context (1) (2) | 2023.04.11 |
[JS] 객체 메소드, 객체 비교, 객체 병합 (0) | 2023.04.04 |