引用此解决方案时,我需要将一个参数传递到utils.js
文件的module.exports
中。
// utils.js
var module;
module.exports = function (name) {
if (module) return module;
module = {};
module.sayHi = function () {
return `Hi, ${name}`;
};
return module;
};
对于如何在require
和utils.js
之后调用sayHi
,我有点困惑。
// index.js
const utils = require("./utils")("Jim");
utils.sayHi();
我得到TypeError: utils.sayHi is not a function
。调用sayHi
的正确方法是什么?
首先创建一个名为module
的变量。
var module;
这样做什么都不做,因为您是在模块的范围内这样做的,所以变量已经存在。
然后为module.exports
分配一个函数。
在另一个模块中,导入该函数并调用它
该函数的第一行显示:
if (module) return module;
module
是真值吗?
是。它是一个物体。如果不是,那么分配给module.exports
会引发异常。
因此,您永远不会覆盖module = {};
或为其分配sayHi
功能
现在看看你提到的答案:
module.exports = function (app, db) { var module = {};
它在函数的范围内创建了一个新的变量,这样它就不会与现有变量冲突。