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

如何理解JavaScript中的Realm(领域)概念?

聊聊ECMAScript里的Realm概念

ECMAScript规范里专门引入了「realm」这个核心概念——所有ECMAScript代码在执行前,必须先关联一个realm。从概念上拆解的话,一个realm就像一个独立的JS运行沙箱,包含这些关键组成部分:

  • 一套专属的固有对象(比如Object、Array这些内置构造函数)
  • 一个独立的ECMAScript全局环境
  • 在这个全局环境作用域下加载的所有ECMAScript代码
  • 配套的执行状态和相关资源

关于跨realm的对象,在Rauschmayer所著《Speaking JavaScript》里也提到过很典型的场景:

在浏览器中,每个框架(frame)和窗口(window)都对应一个独立的realm。比如你从一个iframe里获取到一个数组对象,它的constructor其实是那个iframe环境里的Array,和主页面的Array并不是同一个构造器——这就是跨realm对象的典型表现,看起来是同类型的对象,但本质上隶属于不同的realm运行环境。

内容的提问来源于stack exchange,提问作者M. Twarog

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:44:16