如何在 Javascript/Node 中测试 B 是否是 A 的“子类”

How to test if B is a "subclass" of A in Javascript/Node?

本文关键字:是否是 子类 测试 Javascript Node      更新时间:2023-09-26

给定两个类,如下所示:

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扩展A.prototype。B不是new A()的回归。 B instanceof A似乎不起作用。

要检查B是否是A的子类(不包括B === A的情况):

B.prototype instanceof A

要检查B是否是A的子类(包括B === A的情况):

B.prototype instanceof A || B === A

如果您有 B 的实例,则第二个测试可以简化为

b instanceof A // where b is an instance of B