节点次要代码问题 - 需要和导出的函数
Node Minor Code Issues - Require and Exported Functions
在之前的提交中:
- 我们这样调用函数
var previousRoute = appRouter.getPreviousRoute();
- 其中 appRouter
var appRouter = require("app_utilities/default/app-router");
- 并且 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
很可能因为您声明了一个变量而不是要导出的 类型的函数 并且导出中的变量保存函数的引用所以如果你直接访问 getPreviousRoute
一个函数,它会产生一个错误,因为你没有导出一个函数,程序将找不到它。因此,就调用变量时的工作而言,程序会发现其声明然后将查找您提供的引用函数并执行它
相反,如果您要导出
exports.getPreviousRoute = ()=>{}
它不会向您显示错误,因为它是一种函数,并且可以访问,如果我错了,我也会指出
在之前的提交中:
- 我们这样调用函数
var previousRoute = appRouter.getPreviousRoute();
- 其中 appRouter
var appRouter = require("app_utilities/default/app-router");
- 并且 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
很可能因为您声明了一个变量而不是要导出的 类型的函数 并且导出中的变量保存函数的引用所以如果你直接访问 getPreviousRoute
一个函数,它会产生一个错误,因为你没有导出一个函数,程序将找不到它。因此,就调用变量时的工作而言,程序会发现其声明然后将查找您提供的引用函数并执行它
相反,如果您要导出
exports.getPreviousRoute = ()=>{}
它不会向您显示错误,因为它是一种函数,并且可以访问,如果我错了,我也会指出