从另一个文件导入时未定义方法
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.
当我尝试从另一个文件导入方法时,我变得不确定。我有 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.