熟悉nodeJs的原理
2019-04-23 本文已影响0人
js_hcl
一、文件全局对象(隐藏外层函数的参数)
exports.yy=function(){};
module.exports={
xx:function(){}
};
for(i of arguments){
console.log(i)
}
--------------------------------------------------------
然后node 命令执行,结果↓↓
{ yy: [Function] } //参数1 其实就是exports
{ [Function: require] //参数2 其实就是require 用于引入文件
resolve: { [Function: resolve] paths: [Function: paths] },
main:
Module {
id: '.',
exports: { xx: [Function: xx] },
parent: null,
filename:
'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\one.js',
loaded: false,
children: [],
paths:
[ 'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\node_modules',
'D:\\360MoveData\\Users\\Administrator\\Desktop\\node_modules',
'D:\\360MoveData\\Users\\Administrator\\node_modules',
'D:\\360MoveData\\Users\\node_modules',
'D:\\360MoveData\\node_modules',
'D:\\node_modules' ] },
extensions:
{ '.js': [Function], '.json': [Function], '.node': [Function] },
cache:
{ 'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\one.js':
Module {
id: '.',
exports: [Object],
parent: null,
filename:
'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\one.js',
loaded: false,
children: [],
paths: [Array] } } }
Module { //参数3 其实就是Module,用于导出文件
id: '.',
exports: { xx: [Function: xx] },
parent: null,
filename:
'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\one.js',
loaded: false,
children: [],
paths:
[ 'D:\\360MoveData\\Users\\Administrator\\Desktop\\css\\node_modules',
'D:\\360MoveData\\Users\\Administrator\\Desktop\\node_modules',
'D:\\360MoveData\\Users\\Administrator\\node_modules',
'D:\\360MoveData\\Users\\node_modules',
'D:\\360MoveData\\node_modules',
'D:\\node_modules' ] }
D:\360MoveData\Users\Administrator\Desktop\css\one.js //参数4 --filename
D:\360MoveData\Users\Administrator\Desktop\css //参数5 --dirname
总结
其实就是外层,加了个函数,传入5个参数。分别为:- exports 可以用于导出收集器。然后赋值给Module.exports
- require
- Module 真正导出的是Module.exports对象。
- --filename
- --dirname