Показать сообщение отдельно
  #4 (permalink)  
Старый 29.08.2018, 18:05
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Потому что родитель объекта возможно определить только по __proto__. В __proto__ созданного объекта попадает prototype функции его сконструировавшей. Если у двух функций один и тот же prototype, определить какой именно из них он был создан принципиально невозможно.

Dog и Mammal имеют прототипом один и тот же объект(не копию, заметьте, а именно один и тот же, ибо объекты передаются по ссылке), потому невозможно отличить объект созданный Dog от объекта созданного Mammal. Потому new Dog точно также instanceof Mammal, как new Mammal - instanceof Dog.
А поскольку DomesticCat наследник Cat, и Cat наследник Mammal, то DomesticCat instanceof Mammal и, соответственно, instanceof Dog.
__________________
29375, 35

Последний раз редактировалось Aetae, 29.08.2018 в 18:10.
Ответить с цитированием