gpt4 book ai didi

javascript - 为什么 DOM 既有 window 又有 self?

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:47 26 4
gpt4 key购买 nike

为什么 DOM 有一个名为 self 的对象和另一个名为 window 的对象,而它们是同一事物?更让人困惑的是 window 有一个名为 self 的属性,所以:

window === window.self === self

为什么会这样?我应该使用哪一个?

最佳答案

self 由 javascript 环境定义并指向 [global] 对象(但不是规范的一部分,因此可能不存在),而 window是 DOM 规范的一部分。在大多数浏览器中,window 被用作 [global] 对象,但并非总是如此。

self == window.self 并不奇怪,因为它们是同一个对象 - 当查找 self 时,它被发现是全局的一个属性对象(窗口)。所以它实际上与 window.self == window.self 相同。

如其他地方所述,要可靠地引用 [global] 对象,您应该通过在全局执行上下文中运行 var global = this; 来定义它。

关于javascript - 为什么 DOM 既有 window 又有 self?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com