You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在`instanceof`的静态等价实现?如何检查类继承关系?

类与类之间的静态继承关系检查方案探讨

是否存在instanceof的静态等价用法?即不是使用obj1 instanceof Type这种实例与类的判断,而是类似TypeA instanceof TypeB这样类与类的判断?

我未找到相关方案,因此自行编写了如下代码:

function InstanceOf(type, parent) {
    do { if(type === parent) return true; }
    while(type = Object.getPrototypeOf(type));
    return false;
}
// 使用示例
InstanceOf(ChildClass, ParentClass); // 返回布尔值

但我认为应该有更优的原生实现方式,却始终未找到相关资料。

是否存在更优的标准方法来检查类的静态继承关系?还是我编写的这个方案已是最佳选择?

更新
出于好奇,我对自己编写的方案与已采纳答案中的方案进行了性能测试,在执行100,000次的情况下,基于getPrototypeOf的版本速度约快一倍。另外,我无法提供测试代码,因为是在node REPL中完成的测试。


内容的提问来源于stack exchange,提问作者Werlious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:42:07