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");
我有以下 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");