- 함수 할당(선언)시에 스코프체인은 이미 정해진다
- 함수가 호출(실행)될때마다 함수 컨텍스트가 생성
- 실행컨텍스트가 실행될 때 관련 변수 함수들을 수집한다
var name = 'zero'; // (1)변수 선언 (6)변수 대입
function wow(word) { // (2)변수 선언 (3)변수 대입
console.log(word + ' ' + name); // (11)
}
function say () { // (4)변수 선언 (5)변수 대입
var name = 'nero'; // (8)
console.log(name); // (9)
wow('hello'); // (10)
}
say(); // (7)
- 변수 객체
1) argument => null
2) variable => name(실행 컨텍스트 생성 후 코드 진행하면서 zero값 추가) , wow함수 , say함수- 스코프체인
1) 전역변수 객체- this
1) window
- 변수 객체
1) argument => null
2) variable => name(실행 컨텍스트 생성 후 코드 진행하면서 nero값 추가)- 스코프체인
1) say 변수 객체 , 전역변수 객체- this
1) window
- 변수 객체
1) argumnet => word(hello값)
2) variable => null- 스코프체인
1) wow 변수 객체 , 전역 객체- this
1) window
선언시 스코프체인은 이미 정해져있어 say함수와 wow함수는 전역컨텍스트가 실행되면서 선언되어 해당 함수들이 스코프로 전역객체와 각각 연결되어있다.
첫번째 console.log(name);
은 say함수안에 있으므로 가장 가까운 값인 nero가 나온다.
두번째 console.log(word + ' ' + name);
는 wow함수안에 word 값이 있고 variable은 없으므로 스코프체인을 통해 전역 객체로 가서 name 값을 넣어 hello zero가 나온다.
nero
hello zero
var name1 = 'zero'; // (1)변수 선언 (6)변수 대입
function say1 () { // (4)변수 선언 (5)변수 대입
var name1 = 'nero'; // (8)
console.log(name1); // (9)
function wow1(word){ // (2)변수 선언 (3)변수 대입
console.log(word + ' ' + name1); // (11)
}
wow1('hello'); // (10)
}
say1(); // (7)
- 변수 객체
1) argument => null
2) variable => name1(실행 컨텍스트 생성 후 코드 진행하면서 zero값 추가) , say1 함수- 스코프체인
1) 전역변수 객체- this
1) window
- 변수 객체
1) argument => null
2) variable => name1( 실행 컨텍스트 생성 후 코드 진행하면서 nero값 추가) , wow1함수- 스코프체인
1) say1 변수 객체 , 전역변수 객체- this
1) window
- 변수 객체
1) argumnet => word(hello값)
2) variable => null- 스코프체인
1) wow1 변수 객체 , say1 변수 객체- this
1) window
선언시 스코프체인은 이미 정해져있어 say1함수는 전역컨텍스트가 실행되면서 선언되어 해당 함수가 스코프로 전역객체와 각각 연결되어있다.
첫번째 console.log(name);
은 say함수안에 있으므로 가장 가까운 값인 nero가 나온다.
두번째 console.log(word + ' ' + name);
는 wow함수안에 word 값이 있고 variable은 없으므로 스코프체인을 통해 say1 변수 객체로 가서 name 값을 넣어 hello nero가 나온다.
nero
hello nero
기존에 name1을 say1 변수객체에서 찾았지만 못찾아 둘다 스코프체인을 하여 전역객체로 가서 zero를 찾고 결과를 표현한다.
zero
hello zero
전역컨텍스트 생성시 name1이 값이 없이 존재하다가 say1실행 전
zero
라는 값을 넣고 say1이 실행하면서 name1을 찾아 스코프체인을 통해 전역 변수객체에 있는 name1을 찾는다.
zero
hello zero
- 실행컨텍스트는 선언시 스코프체인은 결정되고
호출 시 함수컨텍스트가 생성된다.- 실행컨텍스트 생성시 해당 필요한 변수객체, 스코프체인, this를 수집한다.
- 자신에게 없는 값은 스코프체인을 통해 변수값을 찾아간다.