为什么窗口或文档不能设置为 undefined 或 null?

2023-11-22

这可能是一个愚蠢的问题,但我还没有找到答案。为什么我们不能做到以下几点?

window = undefined

OR

document = undefined

我知道这些是全局变量并且可以在浏览器中使用,但是想想 JavaScript 是如何工作的,这难道不可能吗?每次我们尝试访问它们时都会重新评估它们吗?

我也有兴趣知道如何window or document即使将对象设置为随机值后,对象仍保持原样......可能是number or undefined or null.


根据标准:

窗口属性必须返回Window对象的浏览上下文WindowProxy目的。 文档属性必须返回Window对象是最新的Document object.

Meaning window是评估所有脚本的上下文。如果它是可写的,那么上面的内容将不成立,并且实现不会遵循规范,因此它是不可写的。
出于类似的原因,您可以将属性添加到document但你不能覆盖它。

您可以通过查看 IDL 来验证这一点:

[Unforgeable] readonly attribute WindowProxy window;
[Unforgeable] readonly attribute Document document;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么窗口或文档不能设置为 undefined 或 null? 的相关文章