Javascript Node.js中的每个模块采用哪种格式?
在Node.js中,每个模块都采用具有以下属性的对象格式:Javascript Node.js中的每个模块采用哪种格式?,javascript,node.js,oop,object,Javascript,Node.js,Oop,Object,在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',
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作为其参数。前者是键/值格式,后者是函数定义格式。是哪一个?您的代码示例包含两个不同但相关的内容。第一个是模块对象,如下所述。第二个是节点在内部执行的操作:在匿名函数中包装模块,这有助于将模块中的顶级变量保持在该模块的范围内,而不是全局公开它们。描述了该模块的包装行为 “每个模块都有一个函数格式”-呃,不是吗?这只是一个初始化模块对象的生命,仅此而已。函数没有保留,它不代表模块。我认为函数始终存在,因为每当出现语法错误时,都会调用函数,如function.module.\u load和function.module.runMain,否?加载模块时会创建函数,然后调用它来评估模块源,但是它被丢弃了。模块仅引用模块对象。