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

HTML/WHATWG中relevant setting object/realm及Document的[[Realm]]字段疑问

核心概念解释

1. [[Realm]] 字段的来源

[[Realm]] 不属于HTML规范单独为Document接口定义的字段,它是ECMAScript规范中对所有平台对象(即宿主环境提供的、实现了Web IDL接口的对象)要求的内置内部槽。所有Web IDL定义的接口实例(包括Document、Element等所有DOM对象)在创建时都会自动被分配这个内部槽,不需要在HTML的Document接口定义中单独声明。

2. Document 对象的 [[Realm]] 赋值时机

所有Document实例的[[Realm]]槽会在对象创建阶段完成赋值:

  • 每一个浏览上下文对应唯一的全局环境,全局环境关联的ECMAScript执行上下文的Realm就是这个Document所属的Realm
  • 创建新Document对象时,会直接将当前浏览上下文关联的Realm赋值给该对象的[[Realm]]内部槽,这个逻辑被包含在Web IDL规范的平台对象创建流程中,不需要在HTML的Document创建流程里重复定义

3. relevant Realm 和 relevant settings object 的关联

  • relevant Realm:直接取平台对象[[Realm]]内部槽的值,代表这个对象所属的脚本执行域,不同Realm之间的全局对象、内置构造函数(如Array、Object)都是相互隔离的
  • relevant settings object:每个Realm都会对应一个环境设置对象,存储了该Realm关联的源、创建URL、浏览上下文、API权限策略等宿主相关的配置信息,取对应Realm的环境设置对象即可得到目标对象的relevant settings object

提及的断言逻辑说明

创建新浏览上下文时生成的初始Document是about:blank文档,它的所属Realm的环境设置对象的创建URL默认就是about:blank,和文档本身的初始URL一致,所以才有对应的断言。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:24:01