Class 생성 후 메소드를 추가해줄 때:
이렇게 하니 정상적으로 prototype 내에 sayBye() 함수가 존재합니다.
차이가 뭔지 궁금해서 아래와 같이 그냥 메소드를 추가해봤습니다:
콘솔창에 이렇게 뜹니다:
자식 오브젝트에 sayBye()가 없는 걸로 보입니다.
하지만 [[Prototype]]을 열어보니:
constructor 내에 sayBye 함수가 존재합니다. 하지만 자식.sayBye();를 하면 에러가 뜹니다.
코드 순서가 문제인가 싶어서 아래처럼 메소드 추가 후 자식 생성을도 해봤습니다:
하지만 여전히 자식 내엔 sayBye가 없고 자식.sayBye()는 에러를 출력합니다. 부모의 constructor를 살펴봤을땐 sayBye()가 존재하고요.
질문) 부모.sayBye = function(){} 하면 정확히 무슨 일이 일어나는 건가요? 왜 위와 같은 현상이 일어나는 건가요?