这可能是一个愚蠢的问题,但我还没有找到答案。为什么我们不能做以下事情?
window = undefined
OR
document = undefined
我知道这些是全局变量并且可以在浏览器中使用但是考虑JavaScript是如何工作的,这是不可能的?每次我们尝试访问它们时都会重新评估它们吗?
我也很想知道window
或document
对象在将它们设置为随机值后仍然保持原样...可能是number
或{{1 }或undefined
。
答案 0 :(得分:4)
根据the standard:
window属性必须返回
[0, 1, 0]
对象的浏览上下文Window
对象。 document属性必须返回WindowProxy
对象的最新Window
对象。
含义Document
是评估所有脚本的上下文。如果它是可写的,那么上面的内容就不会被执行,并且实现不会遵循规范,因此它不可写。
出于类似的原因,您可以向window
添加属性,但不能覆盖它。
您可以通过查看IDL来验证这一点:
document
答案 1 :(得分:0)
window
是上下文。你不能this = something
做其他事。
document
是窗口的属性。它不可写或可配置。
Object.getOwnPropertyDescriptor( window, 'document' );
输出
Object {value: document,
writable: false,
enumerable: true,
configurable: false}