我正在查看 node-etherdream 的代码库和主模块中我看到了这个:
(缩写):
(function(ns) {
/// a bunch of code
})(exports);
我从未见过 exports
被传递到这样的匿名函数中,也没有在这段代码中的任何地方看到 module.exports
。然而,这个文件像任何其他模块一样被reuire
d。
有人可以向我解释一下 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/