这对require语句做了什么?

时间:2017-06-05 08:04:56

标签: javascript node.js

我正在使用NodeJS进行探索,并且我使用快速调试模块偶然发现了以下语法:

require('debug')(express:server);

这是什么?我之前从未见过这种形式,也没有真正找到一种方法来谷歌检索它。

这个表单是否允许传递给load module语句的参数?

1 个答案:

答案 0 :(得分:2)

(some, arguments)置于评估为值的内容之后,与其他任何地方相同。它将该值称为函数。

这是一个函数表达式:

(function () { })

它作为一个函数进行求值,你可以调用它:

(function () { })()

这是一个返回函数的函数:

function foo () {
    return function () { };
}

您可以调用它来获取功能:

foo();

并将其评估为函数,以便您可以立即调用该函数:

foo()();

这是一个返回函数的模块:

module.exports = function () {}

你可以要求它获得一个功能:

require("myModule")

您可以立即调用该功能:

require("myModule")()