ES6 - 检查 class 是否属于某个 class 树

ES6 - Checking if a class belongs to a certain class tree

我有以下 ES6 classes(请注意,为简单起见,删除了构造函数和所有其他相关方法)

Class Grandparent {
}


Class Parent1 extends Grandparent {
}


Class Parent2 extends Grandparent {
}


Class Self extends Parent1 {
}


Class Sibling extends Parent1 {
}

然后,我创建了以下实例

let myclass = new Self();

有没有一种方法可以检测“实例是否属于 class 树中的某个 class”?类似于“instanceof”,但用于 parents。例如下面的代码应该有助于理解

if (myclass instanceof Self) {             // should return true

if (myclass <descendant of> Parent1) {     // should return true

if (myclass <descendant of> Grandparent) { // should return true

if (myclass <descendant of> Parent2) {     // should return false

if (myclass <descendant of> Sibling) {     // should return false

谢谢。

instanceof:

class Grandparent {}
class Parent1 extends Grandparent {}
class Parent2 extends Grandparent {}
class Self extends Parent1 {}
class Sibling extends Parent1 {}

let myclass = new Self();

console.log(myclass instanceof Self,        "should return true");
console.log(myclass instanceof Parent1,     "should return true");
console.log(myclass instanceof Grandparent, "should return true");
console.log(myclass instanceof Parent2,     "should return false");
console.log(myclass instanceof Sibling,     "should return false");