亲爱的,我刚开始学习 javascript 中的模块。这是我实现的一个模块:
module.exports = function(logger_level) {
this.info = function(message) {
stdout(message);
};
};
function stdout(message)
{
process.stdout.write(message+'\n');
}
我必须这样调用它:
var logger = require('./js/logger.js');
var logger1 = new logger("info1");
logger1.info("info");
我的问题是如何更改模块的实现,以便我可以像这样调用它:
var logger = require('./js/logger.js')("info");
logger.info("info");
最佳答案
如果你想那样使用它,根本不需要构造函数:
module.exports = {
info: function(message) {
stdout(message);
}
};
function stdout(message)
{
process.stdout.write(message+'\n');
}
I just started learning modules in javascript.
请注意,这与其说是“JavaScript 中的模块”,不如说是“NodeJS 中的模块”。直到 ES2015(“ES6”)才引入的 JavaScript 模块在外观和行为上都大不相同,但它们尚未得到广泛支持。如果是,您的模块可能如下所示:
// ES2015+ syntax
export default {
info: function(message) {
stdout(message);
}
};
function stdout(message)
{
process.stdout.write(message+'\n');
}
...并像这样使用:
import logger from './logger.js';
logger.info("info");
关于javascript - 如何导出模块中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41910140/