我处于这样一种情况,我需要检查一个对象是否是子类的实例,但同时instanceof应该false为父类返回。
我已经找到了一种方法,但我无法想到这种方法可能会失败的边缘情况。这是正确的方法吗?
这是代码的简化版本:
class Employee {
static [Symbol.hasInstance]( instance ) {
return Object.getPrototypeOf( instance ) === this.prototype;
}
}
class Manager extends Employee {
}
class AssistantManager extends Manager {
}
const e1 = new AssistantManager( 'Dean' );
console.log( e1 instanceof Employee ) // false
console.log( e1 instanceof Manager ) // false
console.log( e1 instanceof AssistantManager ) // true
青春有我
相关分类