如何解决当来自不同来源脚本或模块的 JS 代码必须共享相同的 Realm 对象时?
ECMAScript defines realm
对象作为一个必须在评估前与 JS 代码关联的对象。它保存对全局对象和全局环境的引用。 Module Record
和 Script Record
等规范实体引用其 realm
,因此它们的代码将使用此 realm
运行。
如果我们有多个模块(Module Record
)的依赖关系图,它们是否都必须存储相同的 realm
对象?应该是这样,因为这些模块必须共享一个全局环境,但我无法从规范中得出具体规则。
有以下instruction:
一个全局的Environment Record用来表示最外层的作用域 由所有 ECMAScript 脚本元素共享 处理在一个共同的领域。
尽管它将“共同领域”限制为 Script
元素(出于对我而言神秘的原因)。
所以我的最后一个问题是,来自不同来源的 JS 代码必须使用相同的 realm
对象执行(然后所有这些代码共享相同的全局环境)的条件是什么,相反,当 JS 代码是有资格创建自己的 realm
? (这个 answer 告诉其中一种情况是 <iframe>
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。