这是nodejs源码module.js的代码 https://github.com/nodejs/node/blob/master/lib/module.js const NativeModule = require(‘native_module’); const util = require(‘util’); const internalModule = require(‘internal/module’); const vm = require(‘vm’); const assert = require(‘assert’).ok; const fs = require(‘fs’); const internalFS = require(‘internal/fs’);
这是require的源码 Module.prototype.require = function(path) { assert(path, ‘missing path’); assert(typeof path === ‘string’, ‘path must be a string’); return Module._load(path, this, / isMain / false); };
module.js是实现require函数的,为什么第一行就调用了require,require函数不是还没实现吗?,那么第一行的require是哪里的? https://github.com/nodejs/node/blob/master/lib/internal/module.js internal目录下的module.js又是做什么用的呢?
一般每个模块默认会加上(function (exports, require, module, __filename, __dirname) { // 模块源码 }); 这里的require又是哪里的? 好混乱啊,求各位大神指教,谢谢!