我遇到一个错误,我可以实例化一个类,而不能实例化另一个类,但是据我所知,两者之间没有区别。我是nodejs的新手,不确定自己在做什么错。下面显示的所有文件都是目录中的同级文件。
/********** exampleClass.js ********/
const classOne = require("./classOne");
const classTwo = require("./classTwo")
module.exports = class exampleClass {
method() {
// works fine
const classOneInstance = new classOne();
const classTwoInstance = new classTwo(); // gives error 'TypeError: classTwo is not a constructor' UNLESS I require classTwo in the method. Doesn't matter if this goes before or after classOneInstance
}
}
/********** classOne.js *****************/
module.exports = class classOne {
}
/************classTwo.js ****************/
const classOne = require("./classOne");
const exampleClass = require("./exampleClass");
module.exports = class classTwo {
method() {
const exampleClassInstance = new exampleClass();
exampleClassInstance.method();
}
}
最佳答案
因为我从classTwo调用exampleClass,然后再从exampleClass调用classTwo,所以这是一个循环引用,产生了该错误。感谢@AndrewLi