Незначительные проблемы с кодом узла - требуют и экспортируют функции - PullRequest
0 голосов
/ 25 января 2019

В предыдущем коммите:

  • Мы называем такую ​​функцию, как 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

1 Ответ

0 голосов
/ 25 января 2019

Скорее всего, поскольку вы объявили переменную, а не функцию типа для экспорта , а переменная внутри экспорта содержит ссылку на функцию, поэтому, если вы обращаетесь непосредственно к getPreviousRoute функцииЭто приведет к ошибке, поскольку вы не экспортировали функцию, и программа не найдет ее.Таким образом, с точки зрения работы, когда переменная вызывается, программа обнаружит, что ее объявленная переменная будет искать заданную вами справочную функцию и выполнит ее

Вместо этого, если вы будете экспортировать как

exports.getPreviousRoute = ()=>{}

Он не покажет вам ошибку как тип функции и будет доступен, позвольте мне также указать, если я ошибаюсь

...