我有一个对象ObjectC
,其中包含以下原型链:
PrototypeC
- > PrototypeB
- > PrototypeA
- > Object
ObjectC.__proto__ === PrototypeC
我想知道ObjectC
是否从PrototypeB
继承了其构造函数的实际NAME(即PrototypeB
)。
我不导入PrototypeC
,因此无法使用instanceOf
,Object.prototypeOf
等...因为它是第三方npm包的一部分。
我的解决方案如下:
function _isFromConstructorB(err) {
return err.__proto__.__proto__ &&
err.__proto__.__proto__.constructor.name === 'PrototypeB';
}
有更好的方法吗?我的方法足够吗?我看到的最大问题是,如果原型链发生变化,它可能会破裂。