Pra*_*lia 7 javascript browser
这可能是一个愚蠢的问题,但我还没有找到答案.为什么我们不能做以下事情呢?
window = undefined
Run Code Online (Sandbox Code Playgroud)
要么
document = undefined
Run Code Online (Sandbox Code Playgroud)
我知道那些是全局的并且可以在浏览器中使用,但是考虑JavaScript是如何工作的,这是不可能的?每次我们尝试访问它们时都会重新评估吗?
我也有兴趣了解这些window或document对象在将它们设置为随机值之后如何保持它们的状态...可能是number或者undefined或者null.
根据标准:
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)