작성
·
254
1
TestMethodDecorator
의 파라미터 target이 콘솔에 빈 객체로 찍히는 이유를 잘 모르겠는데 혹시 설명해주실 수 있으실까요?
클래스가 평가되어서 생성자 함수 객체가 생성되고, 생성자 함수 객체의 prototype 프로퍼티를 가지고 있는걸로 알고있는데
그러면 프로토타입 객체는 dance 메서드를 가지고 있는 객체가 콘솔로 찍혀야 하는 것이 아닌가 하고 생각하고 있었는데 빈 객체가 찍혀서 이유를 잘 모르겠습니다.
답변 1
0
안녕하세요!
target === Idol.prototype을 출력해보면 true가 나옵니다.
하지만 prototype chain 강의를 다시 봐보시면 Idol.prototype은 dance 함수를 갖을 수 없습니다.
prototype이 오히려 체인의 위에 있기 때문입니다.
감사합니다!
아 죄송합니다 제가 거꾸로 생각했습니다. property function으로 선언하면 인스턴스에 귀속되고 method로 선언하면 prototype에 귀속되는게 맞습니다! 아래 예제 첨부 해드립니다!
class Test{
propertyFunction = function(){
}
methodFunction(){
}
}
const instance = new Test();
console.dir(Test.prototype, {showHidden: true})
출력엔 methodFunction만 존재합니다!
코팩님 강의 프로토타입 체인 강의를 듣던 도중
console.dir(_ , {showHidden: true)
가 있다는 사실을 알게 되었고
위와 같이 콘솔을 찍어봤습니다.
위와 같이 Idol.prototype 객체가 dance 함수를 가지는 게 맞는 것 같은데 아닌가요..?