javascript - 当来自不同来源(脚本或模块)的 JS 代码必须共享同一个 Realm 对象时?
问题描述
ECMAScript将 realm
对象定义为在评估之前必须与 JS 代码相关联的对象。它保存对全局对象和全局环境的引用。此类规范实体作为Module Record
并Script Record
引用它realm
,因此它们的代码将与 this 一起运行realm
。
如果我们有几个模块(Module Record
s)的依赖图,它们必须都存储同一个realm
对象吗?由于这些模块必须共享一个全局环境,因此应该如此,但我无法从规范中得出具体的规则。
有以下说明:
全局环境记录用于表示由在公共领域中处理的所有 ECMAScript 脚本元素共享的最外层范围。
尽管它将“共同领域”限制为Script
元素(出于对我来说奥秘的原因)。
所以我的最后一个问题是,来自不同来源的 JS 代码必须在什么条件下使用同一个realm
对象执行(然后所有这些代码共享相同的全局环境),相反,什么时候 JS 代码有资格创建自己的realm
?(这个答案告诉其中一种情况是<iframe>
)。
解决方案
推荐阅读
- android - “adb switch-user”经常卡死安卓手机
- jenkins - Jenkins 并行阶段 - enoent ENOENT:没有这样的文件或目录
- oracle - NLog 没有登录 Oracle 数据库,请问我怎样才能正确
- c# - 点的开放级联曲面
- android - 从图库中选择图像后我遇到的问题(随机顺序)
- javascript - JS等待订阅结果
- objective-c - 当按钮覆盖滚动/文本视图时设置正确的光标?
- go - 在 mac 中使用 gorilla/mux 包的问题
- java - 创建以全屏为背景的 Android Studio 布局
- django - DRF & Pillow:错误:提交的数据不是文件。检查表单上的编码类型