자바스크립트 객체지향 강의를 듣다가 궁금한점이 생겨 질문드립니다.
class로 자식을 찍어내는 부모를 하나 만들었는데요,
constructor 내부가 아니라 바깥에 sayHi함수를 하나 만들어서 prototype으로 사용하려고 합니다.
sayHi 함수는 내부에 sayHello함수 정의 및 실행하는 코드가 포함되어 있구요.
sayHello 함수 내부에 사용된 this가 node환경이든 크롬이든 어디서든 undefined로 나오는데 왜 그런지 알 수 있을까요??
```javascript
class 부모 {
constructor(이름, 나이) {
this.name = 이름;
this.age = 나이;
}
sayHi() {
console.log(this.name); //이녀석은 park 출력되고
function sayHello() {
console.log(this); // 이녀석이 undefined로 출력됩니다.
}
sayHello();
}
}
var 자식 = new 부모("Park", 10);
자식.sayHi(); // sayHi 함수를 실행
```
저는 sayHello가 근본없는 일반함수라서 window를 출력할 줄 알았는데 왜 undefined가 나오는지 궁금합니다!