作者:936383130_54f13e | 来源:互联网 | 2023-10-12 09:31
更具体:
module
是文件内的全局范围变量。
因此,如果您致电require("foo")
:
// foo.js
console.log(this === module); // true
它的行为与window
在浏览器中的行为相同。
还有一个称为的全局对象global
,您可以在所需的任何文件中进行读写,但这涉及到更改全局范围,这就是
exports
是存在的变量module.exports
。基本上,这是您在需要文件时 导出 的内容。
// foo.js
module.exports = 42;
// main.js
console.log(require("foo") === 42); // true
单独存在一个小问题exports
。在_global范围上下文+和module
是
一样的。(在浏览器中,全局范围上下文与之window
相同)。
// foo.js
var exports = {}; // creates a new local variable called exports, and conflicts with
// living on module.exports
exports = {}; // does the same as above
module.exports = {}; // just works because its the "correct" exports
// bar.js
exports.foo = 42; // this does not create a new exports variable so it just works