Как проверить, является ли B "подклассом" A в Javascript/Node?
Для двух классов:
function A(name) {
this.name = name;
}
A.prototype.sayName = function() {
console.log(this.name);
}
var B = require('some-class');
// B is subclass of A?
Есть ли способ программно определить, является ли B подклассом A?
Изменить: В моем случае B - это функция, а B.prototype
extends A.prototype
. B не является возвратом new A()
. B instanceof A
, похоже, не работает.
Ответы
Ответ 1
Чтобы проверить, является ли B
подклассом A
(исключая случай, когда B === A
):
B.prototype instanceof A
Чтобы проверить, является ли B
подкласс A
(включая случай, когда B === A
):
B.prototype instanceof A || B === A
new B() instanceof A // shorter, but creates an instance of B