javascript oop, instanceof i klasa bazowa

Projektuję jakąś hierarchię klas w JavaScript. Jak dotąd działa dobrze, ale nie widzę, jak określić, czy obiekt jest „instancją” klasy nadrzędnej. Przykład:

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(); rejestruje to:

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

podczassecond.sayWhoAmI(); rejestruje to:

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

Czuję się obojefirst isecond obiekt powinien powiedzieć, że są to przypadkiBaseObject.

Rozumiem, że JavaScript nie może być do tego stworzony, ale zastanawiam się, czy istnieje sposób, aby to osiągnąć.

questionAnswers(1)

yourAnswerToTheQuestion