我定义了一个类SchemaProvider:

class SchemaProvider  {
  constructor(selectedOperation){
    this.selectedOperation = selectedOperation
  }
}

module.exports = SchemaProvider


我正在另一个类中创建该类的新实例:

let schemaGenerator = require('./SchemaProvider')

schemaGenerator = new schemaGenerator(selectedOperation)


一次调用new schemaGenerator(selectedOperation)可以正常工作,但是第二次调用会引发TypeError:schemaGenerator不是构造函数。
因此,每次进行新的调用时,我都需要重新启动程序。

代码中需要更改什么?

最佳答案

这是因为您要将new schemaGenerator创建的对象分配给本地schemaGenerator变量,并使用对该新对象的引用覆盖对构造函数的引用:

    schemaGenerator = new schemaGenerator(selectedOperation)
//  ^^^^^^^^^^^^^^^^^


该新对象不是构造函数。只需对结果对象使用不同的变量名。

    let obj1 = new schemaGenerator(selectedOperation);
//  ^^^^^^^^^^
    let obj2 = new schemaGenerator(selectedOperation);
//  ^^^^^^^^^^

09-06 13:04