어디에 프로퍼티가 추가될까요
중요도: 5
animal을 상속받는 rabbit이 있습니다.
rabbit.eat()을 호출했을 때, animal과 rabbit 중 어떤 객체에 full 프로퍼티가 생길까요?
let animal = {
eat() {
this.full = true;
}
};
let rabbit = {
__proto__: animal
};
rabbit.eat();
정답: rabbit
점 앞에 있는 객체는 this이기 때문에, rabbit.eat()은 rabbit을 변경합니다.
프로퍼티를 찾는 것과 프로퍼티를 실행하는 것은 완전히 다른 일입니다.
메서드 eat은 프로토타입에서 찾을 수 있지만, 메서드를 실행할 땐 this가 rabbit이 되어 해당 메서드가 실행됩니다.