TypeError:不是构造函数

时间:2019-03-23 21:04:47

标签: javascript node.js electron

我只是将代码用作有关JavaScript类的学习练习。

代码产生“ TypeError:SimpleLogger不是构造函数”。该类似乎已导出,但是我无法在main.js文件中实例化它。

我已经减少了代码以仅显示问题。我想知道是否有人可以发现问题。谢谢。

// In simplelogger.js
"use strict";
class SimpleLogger {
    constructor(level) {
        this.level = level || DEFAULT_LEVEL;
    }

    // .... other methods
}

const DEFAULT_LEVEL = 'info';

module.exports = {
    SimpleLogger,
    DEFAULT_LEVEL
}

// In main.js
"use strict";
const SimpleLogger = require('./simplelogger.js');

let log = new SimpleLogger('info');

错误在最后一行产生。

1 个答案:

答案 0 :(得分:2)

您正在导出同时包含SimpleLoggerDEFAULT_LEVEL的对象,因此要在main.js中使用它,您需要像这样正确引用它

const SimpleLogger = require('./simplelogger.js').SimpleLogger;
let log = new SimpleLogger('info');

如果您只想导出SimpleLogger,则可以像这样更改导出

module.exports = SimpleLogger

然后,您可以像在代码中一样要求SimpleLogger