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

节点次要代码问题-需要和导出函数

  •  -1
  • X3R0  · 技术社区  · 7 年前

    在以前的提交中:

    • 我们这样调用函数 var previousRoute = appRouter.getPreviousRoute();
    • 批准人在哪里 var appRouter = require("app_utilities/default/app-router");
    • 应用路由器包含如下导出:
    module.exports = {
       getPreviousRoute: getPreviousRoute
    }
    
    function getPreviousRoute() {
       return window.appPreviousRoute;
    };
    

    但是,在后者中,会出现以下行错误:

    var previousRoute=approuter.getPreviousRoute();

    这个 误差 将是: Uncaught TypeError: appRouter.getPreviousRoute is not a function

    我们必须将其更改为: var previousRoute = appRouter.getPreviousRoute;

    我想知道什么会使我们需要去掉括号?

    我跑过:

    • node -p process.versions.v8
      • 6.8.275.32-node.36
    1 回复  |  直到 7 年前
        1
  •  1
  •   mzparacha    7 年前

    很可能是因为您声明了一个变量而不是 类型函数 导出时,export中的变量保存函数的引用,因此如果直接访问 getPreviousRoute 一个函数,它会产生一个错误,因为你没有导出一个函数,程序也不会找到它。因此,在调用变量时的工作方面,程序会发现它所声明的,然后会查找您给出的引用函数并执行它。

    如果你想出口

    exports.getPreviousRoute = ()=>{}
    

    它不会将错误显示为一种函数类型,并且可以访问。如果我错了,让我也指出

    推荐文章