К примеру, есть базовый класс Animal, он имеет метод run. От Animal наследуются 2 класса потомка. Как определить какой потомок вызвал метод run? Цель - в зависимости от того, кто вызывает метод run, реализовать разный функционал.
Есть вообще технически такая возможность это узнать? instanceof в любом случае будет по цепочке прототипов искать и будет указывать, что все наследуются от Animal. То есть так не выйдет узнать по идее...
Вот, что я хочу получить. Только в случае с this это, похоже, тоже не работает.
function Animal () {
this.run = function () {
if (this === Beaver) {
console.log('beaver running');
} else if (this === Deer) {
console.log('deer running');
}
};
}
function Beaver () {
}
Beaver.prototype = new Animal();
function Deer () {
}
Deer.prototype = new Animal();
var deer = new Beaver();
deer.run();