Javascript 类型错误:<;类别>;不是构造函数,但不同的类可以正常工作
我得到了一个错误,我可以实例化一个类,但不能实例化另一个,但就我所见,这两个类之间没有区别。我对nodejs是新手,不知道自己做错了什么。下面显示的所有文件都是目录中的同级文件 /**********exampleClass.js********/Javascript 类型错误:<;类别>;不是构造函数,但不同的类可以正常工作,javascript,node.js,es6-class,Javascript,Node.js,Es6 Class,我得到了一个错误,我可以实例化一个类,但不能实例化另一个,但就我所见,这两个类之间没有区别。我对nodejs是新手,不知道自己做错了什么。下面显示的所有文件都是目录中的同级文件 /**********exampleClass.js********/ const classOne = require("./classOne"); const classTwo = require("./classTwo") module.exports = class exampleClass { m
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*****************/
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
}
}
module.exports = class classOne {
}
const classOne = require("./classOne");
const exampleClass = require("./exampleClass");
module.exports = class classTwo {
method() {
const exampleClassInstance = new exampleClass();
exampleClassInstance.method();
}
}
/************class2.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
}
}
module.exports = class classOne {
}
const classOne = require("./classOne");
const exampleClass = require("./exampleClass");
module.exports = class classTwo {
method() {
const exampleClassInstance = new exampleClass();
exampleClassInstance.method();
}
}
因为我从Class2调用exampleClass,然后exampleClass调用Class2,所以是一个循环引用导致了这个错误。感谢@AndrewLi请显示所有代码,而不仅仅是注释:这可能是问题所在。@AndrewLi我刚刚编辑了它。这就是所有的代码你知道你有循环引用对吗?如果你是这样的话,设计就有问题了。是的,我很愚蠢。把这个作为答案,我会接受的@AndrewLi