关于javascript:TypeError:不是构造函数

TypeError: is not a constructor

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

代码生成"typeerror:simplelogger不是构造函数"。类似乎导出成功,但我无法在main.js文件中实例化它。

我减少了代码以显示问题。我想知道是否有人能发现这个问题。谢谢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 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');

错误是在最后一行产生的。


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

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

如果你只想出口SimpleLogger,你可以这样改变你的出口。

1
module.exports = SimpleLogger

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