这是代码:
function require(name) {
if (name in require.cache)
return require.cache[name];
var code = new Function("exports, module", readFile(name));
var exports = {}, module = {exports: exports};
code(exports, module);
require.cache[name] = module.exports;
return module.exports;
}
require.cache = Object.create(null);
这个require.cache
对象的作用是什么?例如,为什么exports
变量不能容纳函数?因为这本书的作者告诉我们,例如,我们不能将一个函数导出到这个变量中。
据我所知,机器人export
和module.export
将(并且实际上可以(保存相同类型的数据。
谢谢!
缓存用于避免重新要求某些内容,这在要求的第一行中使用,否则,您必须实际读取文件。
那行: var 导出 = {}, 模块 = {导出: 导出};
使导出和模块导出引用同一对象。
但是,您没有理由不能不导出函数,作者的实际措辞是什么?