Код такой:
function SuperClass() {}
SuperClass.prototype.method = function() {
console.log('hay');
}
function SubClass() {}
function extend(to, from) {
if (!(to && from)) return 'Ошибка. Нужно два параметра.';
for (var p in from) to[p] = from[p];
}
function defineSubClass(superclass,
constructor,
methods,
statics)
{
constructor.prototype = Object.create(superclass.prototype);
constructor.prototype.constructor = constructor;
if(methods) extend(constructor.prototype, methods);
if(statics) extend(constructor, statics);
}
console.log(SubClass.prototype);
defineSubClass(SuperClass, SubClass);
Если вывести в консоль после вызова defineSubClass(SuperClass, SubClass), то прототип у SubClass.prototype это SuperClass.prototype (Ничего необычного). Но если вывести до вызова, то SubClass.prototype наследуется от Object.prototype (Тоже ничего необычного), но если прейти через свойство constructor>prototype>proto то как мы видим уже другой прототип.
Объясните почему так? Мы же попадаем в тоже самое место, но почему-то уже с другим прототипом.

SubClass.prototypeэто объект, а все объекты в js являются потомкамиObject, консоль вам это и вывела. – Doigrales Apr 17 '19 at 13:36SubClassимеет прототип родителяSuperClass, вы организовали наследование, но что вы ищите в прототипе объектаSubClass.prototype? – Doigrales Apr 17 '19 at 13:58