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

Pra*_*lia 7 javascript browser

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

window = undefined
Run Code Online (Sandbox Code Playgroud)

要么

document = undefined
Run Code Online (Sandbox Code Playgroud)

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

我也有兴趣了解这些windowdocument对象在将它们设置为随机值之后如何保持它们的状态...可能是number或者undefined或者null.

Nit*_*Nit 6

根据标准

window属性必须返回Window对象的浏览上下文的WindowProxy对象。document属性必须返回该Window对象的最新Document对象。

含义window是评估所有脚本的上下文。如果可写,则以上内容将不成立,实现也不会遵循规范,因此不可写。
出于类似的原因,您可以向中添加属性,document但不能覆盖它。

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

[Unforgeable] readonly attribute WindowProxy window;
[Unforgeable] readonly attribute Document document;
Run Code Online (Sandbox Code Playgroud)