You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Script Record的[[LoadedModules]]字段及模块执行上下文的疑问

关于Script Record的[[LoadedModules]]字段的解惑

你的理解方向是对的——模块求值时,初始执行上下文的ScriptOrModule确实指向Module Record,Script Record确实不在这个流程的核心路径里。但Script Record的[[LoadedModules]]字段存在的原因,是它负责的是**非模块脚本(也就是传统的<script>不带type="module"的场景)**的加载跟踪:

  • 非模块脚本执行时,会用到Script Record来管理它动态加载的模块(比如通过import()语法加载的模块),[[LoadedModules]]就是用来记录这些已经加载完成的模块,避免重复加载。
  • 而模块求值的流程,从一开始就由Module Record主导,它自己有专门的字段(比如[[RequestedModules]]、[[Dependencies]])来管理模块依赖,完全不需要用到Script Record的这个字段。

简单说,Script Record和Module Record是ECMAScript规范里针对两种不同脚本类型设计的并行记录结构,[[LoadedModules]]是给非模块脚本场景准备的,和模块求值的流程不交叉,所以你觉得困惑是因为把两个场景混在一起看了,你的核心观察(模块场景下Script Record不参与初始上下文)是正确的。

内容的提问来源于stack exchange,提问作者Slev7n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:37:37