javascript - 将导出传递给匿名函数有什么影响

标签 javascript node.js

我正在查看 node-etherdream 的代码库和主模块中我看到了这个:

(缩写):

(function(ns) {
   /// a bunch of code

})(exports);

我从未见过 exports 被传递到这样的匿名函数中,也没有在这段代码中的任何地方看到 module.exports 。然而,这个文件像任何其他模块一样被reuired。

有人可以向我解释一下 exports 的用法吗?

最佳答案

导出是可以在其中设置变量的特殊对象。 因此,在此示例中,当函数执行时,它会传递此对象导出。

如果你想导出一些变量,你可以在 ns 变量(exports)中设置它,在这种情况下,如下所示:

(function(ns) {
/// a bunch of code
    ns.func1 = function(){}

    ns.func2 = function(){}

    ns.age = 20
})(exports);

当您需要其他文件中的文件时,您将可以访问此变量 func1、func2 和age,如下所示:

var o = require('file.js')
o.func1();
o.func2();
o.age // => 20

关于javascript - 将导出传递给匿名函数有什么影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648445/

相关文章:

javascript - Nodejs 集群中从工作人员到工作人员的消息

node.js - MongoDB中根据时间段获取数据

javascript - 如何在页面加载前读取Client.postMessage?

javascript - 带有 target=_blank 的 asp.net-mvc jquery 对话框 url 不起作用

javascript - 如何编写这个 JavaScript 正则表达式?

Node.js内存泄漏导致系统丢失可用内存,即使在 Node 重启后也是如此?

javascript - 使用express和node.js重定向301。 GET 未被调用

javascript - 在页面基础上添加 Kickstrap 应用程序,无需额外的 less 文件

javascript - 什么是 HTML 中的视口(viewport)。

javascript - 对如何在node.js中实现异步回调感到困惑