在我公司在节点v4.0上运行的一个产品中,有一个类,比如ClassA
,我在许多地方使用require导入它,但是,有一个地方我检查是否对象是ClassA类型,它是,但检查失败
注意:主要问题是,并不总是失败,在某些模块中创建的对象返回true,但是从其他模块返回false。有趣的是(当使用node-inspector检查时),Object.getPrototypeof(object)为所有对象返回'ClassA'。
someClass.js:
var ClassA = require('./classA.js')
...
objA instanceof ClassA // should return true, but returns false for objects created in some modules
我猜测的原因是要求不正确缓存ClassA,可以解决什么问题?
ClassA代码如下:
function A(){...}
module.exports = A; // and the usage is like var obj = new ClassA();