我只是将代码用作有关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');
错误在最后一行中产生。
最佳答案
您正在导出同时包含SimpleLogger
和DEFAULT_LEVEL
的对象,因此要在main.js中使用它,您需要像这样正确引用它
const SimpleLogger = require('./simplelogger.js').SimpleLogger;
let log = new SimpleLogger('info');
如果只想导出
SimpleLogger
,则可以像这样更改导出module.exports = SimpleLogger
然后,您可以像在代码中一样要求
SimpleLogger
。