javascript oop, instanceof и базовый класс

Я проектирую некоторую иерархию классов в JavaScript. Пока он работает нормально, но я не могу понять, как определить, является ли объект «экземпляром». родительского класса. Пример:

function BaseObject(name){
    this.name = name;

    this.sayWhoAmI = function(){
        console.log(this.name + ' is a Derivation1 : ' + (this instanceof Derivation1));
        console.log(this.name + ' is a Derivation2 : ' + (this instanceof Derivation2));
        console.log(this.name + ' is a BaseObject : ' + (this instanceof BaseObject));
    };
}
function Derivation1(){
    BaseObject.apply(this, ['first derivation']);
}
function Derivation2(){
    BaseObject.apply(this, ['second derivation']);
}

var first = new Derivation1();
var second = new Derivation2();

first.sayWhoAmI(); логи это:

first derivation is a Derivation1 : true
first derivation is a Derivation2 : false
first derivation is a BaseObject : false

в то время какsecond.sayWhoAmI(); логи это:

second derivation is a Derivation1 : false
second derivation is a Derivation2 : true
second derivation is a BaseObject : false

Я чувствую, что обаfirst а такжеsecond объект должен был сказать, что они являются примерамиBaseObject.

Я понимаю, что JavaScript не может быть создан для этого, но мне интересно, есть ли способ достичь этого.

Ответы на вопрос(1)

Ваш ответ на вопрос