代码之家  ›  专栏  ›  技术社区  ›  Jessica

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

  •  0
  • Jessica  · 技术社区  · 4 年前

    当我尝试从另一个文件导入方法时,我变得未定义。我有三个文件,一个调用下一个。

    文件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 ,它工作。为什么会这样,这是正确的做法吗?

    0 回复  |  直到 4 年前
        1
  •  2
  •   jfriend00    4 年前

    如果还有其他 require() 您没有向我们展示的声明,那么这可能是由一个通告引起的 require() 其中A需要B,B需要A。当你这样做时,其中一个需求最终会得到一个空的模块对象,而不是模块打算返回的对象。