问题描述
在 Node.js 中,每个模块都采用具有以下属性的对象格式:
Module {
id: '.',
exports: {},
parent: null,
filename: 'C:\\Users\\Node\\first-app\\app.js',
loaded: false,
children: [],
paths:
[ 'C:\\Users\\app\\node_modules',
'C:\\Users\\\\Node\\node_modules',
'C:\\Users\\node_modules',
'C:\\Users\\Documents\\node_modules',
'C:\\Users\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules' ] }
但是,每个模块也是这样的函数格式:
(function (exports, require, module, __filename, __dirname) {
//content of the function
})
该函数将exports、require、module、__filename 和__dirname 作为其参数。 前者是键/值格式,后者是函数定义格式。 哪一个?
1楼
elethan
1
已采纳
2019-03-03 17:31:58
您的代码示例包含两个不同但相关的内容。 第一个是模块对象, 描述。 第二个是节点在内部做的事情:将一个模块包装在一个匿名函数中,除其他外,这有助于将模块中的顶级变量保持在该模块的范围内,而不是在全局范围内公开它们。 描述 此模块包装行为。