检查ES6中的构造函数是否继承另一个构造函数
- 论坛
- 检查ES6中的构造函数是否继承另一个构造函数
53 浏览
检查ES6中的构造函数是否继承另一个构造函数
我有一个情况,我需要检查一个构造函数(X)在其原型链中是否有另一个构造函数(Y)(或者Y本身)。
最快的方法可能是使用(new X()) instanceof Y
。但在这种情况下这不是一个选项,因为涉及的构造函数如果没有有效的参数实例化可能会抛出异常。
我考虑的下一种方法是:
const doesInherit = (A, B) => { while (A) { if (A === B) return true; A = Object.getPrototypeOf(A); } return false; }
这种方法是有效的,但我感觉可能还有更简单的方法来检查这个。是否有其他方法?