从另一个文件导入时未定义方法

Method is undefined when importing from another file

当我尝试从另一个文件导入方法时,我变得不确定。我有 3 个文件,一个调用下一​​个。

文件 1:

const { methodFromFile2 } = require('./file2');
methodFromFile2('myParam');

文件 2:

const { methodFromFile3 } = require("../file3");

consoele.log(methodFromFile3); // undefined
function methodFromFile2(coolParam) {
    consoele.log(methodFromFile3); // undefined
}

module.exports = { methodFromFile2 };

文件3

function methodFromFile3(coolParam) {
    ...
}

module.exports = { methodFromFile3 };

在文件 2 中,方法 methodFromFile3 始终未定义。但是,当我在 methodFromFile2 内移动所需的语句时,它起作用了。为什么会这样,这是正确的做法吗?

如果您没有向我们展示其他 require() 陈述,那么这可能是由循环 require() 引起的,其中 A 需要 B,B 需要 A。当您这样做时,其中一个要求最终会得到一个空的模块对象,而不是模块打算 return.