inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코어 자바스크립트

실행 컨텍스트 (execution context)

17분 부분부터?

235

seonjun Moon

작성한 질문수 35

5

마지막에 설명해주시는 부분에 

잘 모르겟어서 그런데요

inner contxt에서 a를 탐색할 때 a가 없으면 outer함수의 outerEnvironmentReference를 참조해서 거기에도 없으면 전역 컨텍스트를 참조해서 a를 어떻게는 찾아야 하는게 아닌가요?

근데 또 출력을 해보면 선생님 말씀대로 undefined가 잘 출력이 되서 ...

outer함수에 처음 접근한 때에도 console.log(a)를 출력 하려는데 없어서 전역 컨텍스트에서 a를 찾아서 출력해 주잖아요?

근데 inner 컨텍스트는 다른건지 모르겟습니다. ㅠㅠ 

javascript

답변 1

5

정재남

outer에서 a를 탐색한 6번줄의 경우,
outer 컨텍스트 내의 environmentRecord에는
'변수 a'에 대한 정보가 없기 때문에
outerEnvironmentReference를 찾아간 반면,

inner에서 a를 탐색한 9번줄의 경우,
그보다 먼저 8번줄에서 '변수 a 선언'을 했으니까
inner 실행컨텍스트의 environmentRecord에
a변수에 대한 정보가 저장된 상태입니다.
그러니까 해당 변수 a의 값을 읽어오는 거죠.
var로 선언한 변수는 초기화(environmentRecord 수집)
시점에 일단 undefined가 할당됩니다.

0

seonjun Moon

감사합니다 덕분에 javascript 개념 잘 잡고 갑니다 

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

73

1

setTimeout 에서 this

0

95

1

2강부터 영상이 나오지 않습니다.

0

190

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

235

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

274

1

클래스 static 멤버

1

256

1

실행컨텍스트와 스택프레임

2

574

1

프로토타입으로 상속할때 브릿지 사용 이유

0

328

1

호이스팅 관련 질문

1

342

1

책 66p. 예제 3-2 질문입니다.

0

360

1

강의 내용 10:58 캡슐화 질문입니다.

1

405

1

강의 내용 5:10 질문입니다.

1

425

2

전역 공간에서의 this

0

431

2

18:31 addEventListener의 this

1

488

1

outerEnvironmentReference 질문

1

376

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

455

1

Object.prototype.constructor의 [[prototype]] ?

1

661

1

함수를 값으로 할당할 때

2

462

1

15:54 'ddd' 사라지는 오류?

4

382

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

410

1

기본형/가변형 질문입니당

0

337

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

341

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

295

1

안녕하세요, 데이터 변경 질문입니다.

0

335

1