我从文档和几个相关的 StackOverflow 帖子中了解到,如果没有其他父级,window.parent 将自我引用,因此永远不会被定义。
我似乎找不到一个正当的理由来解释为什么会这样。JavaScript 确实有它的特性,但这个特性看起来很奇怪。
MSDN简单地指出
如果当前窗口没有父窗口,即占据了整个浏览器窗口,则 Parent 返回当前窗口的 Window 对象。
MDN状态
如果窗口没有父窗口,则其父属性是对自身的引用。
以及W3 标准本身
Window 对象的 parent 属性的值必须是父文档的 Window 对象,如果没有父文档,则该文档的 Window 对象
我还没有看到其他语言有这样的行为,这种自引用设计的原因是什么?当您点击窗口中最顶部的元素时,'null' 或 'undefined' 会不会造成更明显的情况?
所以为什么?