给出两个类如下:
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
似乎不起作用。
答案 0 :(得分:47)
检查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