再次调用构造函数将引发Typerror:不是构造函数

时间:2018-11-18 12:50:35

标签: javascript node.js

我已经定义了一个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 调用时,我都需要重新启动程序。

代码中需要更改什么?

1 个答案:

答案 0 :(得分:2)

这是因为您要将<input type="text" id="result"/><br/><br/> <input type="text" id="n3"/><br/><br/> <button onclick="add();">+</button><br/><br/> <input type="text" id="n4"/> <p id="n5"></p>创建的对象分配给本地new schemaGenerator变量,并使用对该新对象的引用覆盖了对构造函数的引用:

schemaGenerator

该新对象不是构造函数。只需为结果对象使用其他变量名即可。

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