节点:如何检查对象是否从名称为

时间:2016-11-04 18:05:48

标签: javascript node.js inheritance multiple-inheritance

我有一个对象ObjectC,其中包含以下原型链:

PrototypeC - > PrototypeB - > PrototypeA - > Object

ObjectC.__proto__ === PrototypeC

我想知道ObjectC是否从PrototypeB继承了其构造函数的实际NAME(即PrototypeB)。

我不导入PrototypeC,因此无法使用instanceOfObject.prototypeOf等...因为它是第三方npm包的一部分。

我的解决方案如下:

function _isFromConstructorB(err) {
    return err.__proto__.__proto__ &&
    err.__proto__.__proto__.constructor.name === 'PrototypeB';
}

有更好的方法吗?我的方法足够吗?我看到的最大问题是,如果原型链发生变化,它可能会破裂。

0 个答案:

没有答案