欢迎光临散文网 会员登陆 & 注册

儒猿互联网Java工程师面试突击(第二季)

2022-10-18 20:22 作者:血霁玫瑰与樱花  | 我要投稿

const modules = {} // modules 用于缓存所有模块function execute(key) {  // key => index.js/a.js  if (modules[key]) {    return modules[key];  }  var item = depRelation.find(dep => dep.key === key);  var require = (path) => {    // 可能导入了其他的文件,所以需要将 execute 传递出去    // 输入一个文件路径,拿到路径去执行这个文件    return execute(pathToKey(path));  }  modules[key] = {__esModule: true}; // 标识这个模块是 ES 模块 => 自己有 default,不需要添加 default  var module = {exports: modules[key]};  // 执行一个文件的代码,传入导入其他模块的方法(require) + 如何导出自身模块(导出的东西放置在 module.exports 对象中)  item.code(require, module, module.exports); // 调用 code 转化的函数  return modules[key]}

儒猿互联网Java工程师面试突击(第二季)的评论 (共 条)

分享到微博请遵守国家法律