[정리 시간] 작성해보았습니다.
239
작성한 질문수 16
선생님 안녕하세요. 좋은 강의 감사드립니다!
[정리 시간]의 내용을 작성해보았습니다.

[코드 1]
1. 마지막 줄에서 fn() 호출
2. fn() 함수는 글로벌 함수로, 글로벌 오브젝트는 이름이 없으므로 함수 이름만 작성하여 호출함
3. 따라서 이 때 this는 글로벌 오브젝트를 참조함
4. 또한 window는 글로벌 오브젝트를 참조함
5. 그러므로 console.log(this === window)에서 true를 출력함
6. console.log(this.value)에서도 this는 글로벌 오브젝트를 참조
7. 글로벌 오브젝트에 value라는 프로퍼티가 없기 때문에 undefined를 출력함

[코드 2]
1. 마지막 줄에서 book() 호출
2. book() 함수는 글로벌 함수로 함수 내부에서 this는 글로벌 오브젝트를 참조함
3. 따라서 this.getTitle() 함수를 호출하면
4. function getTitle() {console.log('HTML책');}로 가서 HTML책을 출력함
5. 다시 book 함수의 내부로 돌아가 getTitle()을 호출
6. 이 때의 getTitle() 함수는 우선적으로 book 함수의 선언적 환경 레코드에서 getTitle을 찾아 실행
7. 따라서 function getTitle() {console.log('JS책');}로 가서 JS책을 출력함
감사합니다~!!
답변 2
2
좋습니다. 용어 사용도 좋았고, 코드를 음미하면서 정리했다는 느낌이 듭니다.
한편, 다른 관점입니다만, 내가 정리한 문장(시나리오)이 맞다는 것을 스스로 검증하려면 어떻게 해야 할까요?
코드를 지우고 작성한 시나리오를 따라 가면서 코드를 작성해 보는 것입니다. 아직 이른 감이 있습니다만, 하실 수 있을 것 같아요. 지금은 아니더라도 염두에 두고 문장을 정리하면 더 정밀하게 작성하게 됩니다.
이 방법을 훈련하면 요구사항을 분석할 때 작성한 형태로 시나리오를 작성할 수 있게 됩니다. 그러면 어떻게 될까요? 시나리오(문장)를 기준으로 코드를 작성하는 모습이 됩니다. 코드의 품질이 좋아지는 것은 당연하고요, 이에 따라 테스트도 쉽고 리팩토링을 하지 않아도 됩니다. 왜냐, 시나리오(문장)를 작성하면서 테스트와 리팩토링을 했기 때문입니다. 코드 중심이 아니라 시나리오 중심이 됩니다.
처음에는 코딩 경험이 필요하므로 어쩔 수 없지만, 이것이 최종 모습이 되어야 합니다. 시나리오를 작성하지 않고 코드를 먼저 작성하는 것은 스케쥴 없이 해외 여행을 하는 것과 같습니다. 먼저 스케쥴(시나리오)을 짜고 스케쥴에 따라 여행(코드 작성)을 해야 하듯이...
getBook 실습 예제중 질문드립니다!
0
423
1
__proto__ 에 대해 질문드립니다
0
317
1
호이스팅 코딩시간 풀이
0
365
1
[코딩 시간] JS {name: value} 이해
0
342
1
[[Scope]] 와 [[Environment]]는 같은 개념인가요
0
346
0
slice
0
240
0
스코프가 뭔가요?
0
311
0
어려워요
0
258
0
강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.
0
343
1
[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.
0
303
0
스코프 질문
0
255
1
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
1
548
1
this binding 논리 질문입니다.
0
283
1
파라미터 값을 매핑할 때
0
253
0
ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.
0
212
0
정리시간 입니다.
0
230
0
정리시간입니다.
6
275
0
정리 시간 입니다.
0
205
0
정리시간입니다.
6
231
0
코딩시간 입니다.
1
227
0
선생님 스코프 질문이 있습니다.
1
244
0
[정리시간] 해보았습니다!
0
182
0
선생님 질문있습니다!!
0
162
0
질문드려도 될까요 선생님..
0
220
0





