javascript oop, instanceof y clase base
Estoy diseñando alguna jerarquía de clases en JavaScript. Funciona bien hasta ahora, pero no puedo ver cómo determinar si un objeto es una "instancia" de una clase padre. Ejemplo:
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();
registra esto:
first derivation is a Derivation1 : true
first derivation is a Derivation2 : false
first derivation is a BaseObject : false
mientrassecond.sayWhoAmI();
registra esto:
second derivation is a Derivation1 : false
second derivation is a Derivation2 : true
second derivation is a BaseObject : false
Me siento como ambosfirst
ysecond
objeto debería haber decir que son instancias deBaseObject
.
Entiendo que JavaScript no puede estar hecho para esto, pero me pregunto si hay una manera de lograrlo.