给定两个这样的类:

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

关于javascript - 如何在Javascript/Node中测试B是否为A的 “subclass”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18939192/

10-11 23:47