호이스팅과 오버로드
217
작성한 질문수 25
좋은 강의 감사드립니다.
호이스팅과 오버로딩을 배우던 중 의문점이 생겨 질문 드립니다.
먼저, 호이스팅 강의에서 함수 코드 해석의 첫 단계인 함수 선언문 단계에서 book과 function오브젝트가 스코프에 할당이 되고, 두 번째 변수 초기화 단계에서 변수를 초기화하려고 하는데 이미 값이 있으므로 undefined를 할당하지 않고 원래대로 냅둔다고 하셨습니다.
그리고 오버로딩 강의의 두 번쨰 페이지에서는 "{name : value}형태에서 이름이 같으므로 값이 변경된다." 라고 기술하셨습니다.
여기서 제 질문은 같은 해석단계, 즉 여기서는 함수 선언문 해석 단계에서는 값이 대체가 될 수 있는건가요? 아니면 스코프에 값이 할당된 상태에서 초기화를 하려고 하면 프로퍼티 자체가 이미 존재하기 때문에 하지 않는거다 라고 이해를 해야하나요?
감사합니다.
답변 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
433
1
__proto__ 에 대해 질문드립니다
0
325
1
호이스팅 코딩시간 풀이
0
372
1
[코딩 시간] JS {name: value} 이해
0
348
1
[[Scope]] 와 [[Environment]]는 같은 개념인가요
0
350
0
slice
0
243
0
스코프가 뭔가요?
0
315
0
어려워요
0
261
0
강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.
0
349
1
[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.
0
308
0
스코프 질문
0
259
1
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
1
554
1
this binding 논리 질문입니다.
0
289
1
파라미터 값을 매핑할 때
0
256
0
ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.
0
212
0
정리시간 입니다.
0
231
0
정리시간입니다.
6
278
0
정리 시간 입니다.
0
209
0
정리시간입니다.
6
236
0
코딩시간 입니다.
1
230
0
선생님 스코프 질문이 있습니다.
1
245
0
[정리시간] 해보았습니다!
0
184
0
선생님 질문있습니다!!
0
162
0
질문드려도 될까요 선생님..
0
221
0





