javascript - 从另一个文件导入时方法未定义
问题描述
当我尝试从另一个文件导入方法时,我变得不确定。我有 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 };
在 file2 中,该方法methodFromFile3
始终未定义。但是,当我将所需的语句移到内部methodFromFile2
时,它就起作用了。为什么会这样,这是正确的做法吗?
解决方案
如果require()
您没有向我们展示其他语句,那么这可能是由require()
A 需要 B 和 B 需要 A 的循环引起的。当您这样做时,其中一个需要最终会得到一个空的模块对象,而不是一个模块打算返回。
推荐阅读
- c - 如何将字符串c程序中的每个单词大写
- c# - 获取FORMSOF的结果
- c# - 如何解析这个 DateTimeOffset?
- ios - 当模块未缓存时,“无法为 iOS 框架中的 C 静态库构建 Objective-C 模块”
- jenkins - 使用 Jenkins 获取 HTTP ERROR 404 时如何隐藏/删除码头版本
- javascript - Vue JS 返回 [__ob__: Observer] 数据而不是我的对象数组
- git - 如何获取 Libre Office Writer 保存的文件的有用 git diff,并在命令行中输出?
- julia - 在 Julia 中,数组访问的循环很慢
- swift - 正则表达式以防止重复的字符或数字
- javascript - 愿望清单按钮仅在强制页面刷新时有效,在选择日历日期时无效