Я играл с наследованием в javascript, используя NodeJS, и я не понимаю, почему дядя Трамп.__прото__.__прото__ отображает только один объект наследования при многократном наследовании от двух конструкторов.
Вот код, который я пробовал.
const util = require('util')
function person(){
this.species = 'human'
this.planet = 'earth'
}
function animal(){
this.stupid = true
}
function boy(){
animal.call(this)
person.call(this)
this.gender = 'male'
}
util.inherits(boy,person);
util.inherits(boy,animal);
let uncleTrump = new boy();
console.info(uncleTrump.__proto__.__proto__)
Когда этот код запускается с использованием NodeJS, единственным выходом, который я получаю, является .
animal {}
Почему я не вижу человека {} в цепочке прототипов?
util.inherits позволяет прикрепить функцию к цепочке прототипов других. Я думаю, вы правы, мальчик-животное может перезаписать мальчик-человек, а не формировать ветвь в цепочке прототипов. @адига
Я не понимаю, почему вы ожидаете, что ваша цепочка прототипов будет выглядеть именно так. наследует только создает миксины, не расширяет прототип



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Javascript не использует множественное наследование, он поддерживает только одну модель наследования.
util.inherits перезаписывает цепочку прототипов мальчик-человек цепочкой прототипов мальчик-животное .
Вот почему я не вижу человек {}, когда вызывается __proto__.__proto__.
Точно. Это цепочка прототипов, а не дерево прототипов :-)
Что делает
util.inherits? Я думаю, что это перезаписывает цепочку прототиповboy-personнаboy-animal