Всех приветствую!
Ковыряясь в дебрях прототипного наследования, набрел на такую интересную особенность. Вот, например:
function Boss() {
this.id = 0;
this.desc = 'Main object'
}
const boss = new Boss();
function SubBoss() {
this.department = 1;
}
SubBoss.prototype = boss;
subBoss = new SubBoss();
console.dir(SubBoss);
console.log(subBoss);
console.log(subBoss.desc);
Два объекта заданы своими функциями-конструкторами, экземпляры этих объектов - соответственно, через new. Объект SubBoss я хочу прототипно связать с объектом Boss и у меня вопрос: почему для этого я должен обязательно создать экземпляр объекта Boss (boss) и записать в прототип его? А просто связать две функции-конструктора прототипно не судьба? Если я просто напишу SubBoss.prototype = Boss, то последняя строка выдаст в консоль undefined, а свойство subBoss.desc должно унаследоваться.
Что примечательно, если рассмотреть в консоли console.dir(SubBoss), то там в prototype будет записано Boss, а не boss.
Запутался я, в общем, в этих хитросплетениях, помогите наконец-то уложить все это в голове.