inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중고급: 엔진 핵심

9. 오버로딩

호이스팅과 오버로드

213

js be

작성한 질문수 25

0

좋은 강의 감사드립니다.

호이스팅과 오버로딩을 배우던 중 의문점이 생겨 질문 드립니다. 

먼저, 호이스팅 강의에서 함수 코드 해석의 첫 단계인 함수 선언문 단계에서 book과 function오브젝트가 스코프에 할당이 되고, 두 번째 변수 초기화 단계에서 변수를 초기화하려고 하는데 이미 값이 있으므로 undefined를 할당하지 않고 원래대로 냅둔다고 하셨습니다. 

그리고 오버로딩 강의의 두 번쨰 페이지에서는 "{name : value}형태에서 이름이 같으므로 값이 변경된다." 라고 기술하셨습니다.

여기서 제 질문은 같은 해석단계, 즉 여기서는 함수 선언문 해석 단계에서는 값이 대체가 될 수 있는건가요? 아니면 스코프에 값이 할당된 상태에서 초기화를 하려고 하면 프로퍼티 자체가 이미 존재하기 때문에 하지 않는거다 라고 이해를 해야하나요?

감사합니다.

javascript

답변 1

1

김영보

여기서 제 질문은 같은 해석단계, 즉 여기서는 함수 선언문 해석 단계에서는 값이 대체가 될 수 있는건가요? 아니면 스코프에 값이 할당된 상태에서 초기화를 하려고 하면 프로퍼티 자체가 이미 존재하기 때문에 하지 않는거다 라고 이해를 해야하나요?

// 해석 단계, 아래 순서로 실행했을 때
function book(){};

// 대체(오버라이딩)되지 않습니다.
var book = function(){};

//대체됩니다.
function book(){};
-------------

// 실행 단계, 아래 순서로 실행했을 때
function book(){};

// 대체됩니다.
var book = function(){};

// 호이스팅, value 변숫값을 undefined로 인식하지만, 변수 이름을 인식하지 못해 에러가 나지는 않습니다.
var result = value ? value : 100;
var value = 123;

getBook 실습 예제중 질문드립니다!

0

419

1

__proto__ 에 대해 질문드립니다

0

315

1

호이스팅 코딩시간 풀이

0

358

1

[코딩 시간] JS {name: value} 이해

0

339

1

[[Scope]] 와 [[Environment]]는 같은 개념인가요

0

345

0

slice

0

239

0

스코프가 뭔가요?

0

307

0

어려워요

0

254

0

강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.

0

339

1

[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.

0

300

0

스코프 질문

0

253

1

fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ

1

542

1

this binding 논리 질문입니다.

0

279

1

파라미터 값을 매핑할 때

0

251

0

ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.

0

209

0

정리시간 입니다.

0

228

0

정리시간입니다.

6

268

0

정리 시간 입니다.

0

202

0

정리시간입니다.

6

227

0

코딩시간 입니다.

1

221

0

선생님 스코프 질문이 있습니다.

1

238

0

[정리시간] 해보았습니다!

0

173

0

선생님 질문있습니다!!

0

157

0

질문드려도 될까요 선생님..

0

214

0