关于jQuery source ==在窗口上的问题

data: function( elem, name, data ) { if ( !jQuery.acceptData( elem ) ) { return; } elem = elem == window ? windowData : elem; 

直接从jQuery源复制。

为什么使用elem === window不安全?

为什么jQuery在window对象上使用类型强制?

似乎在IE中存在top的问题

 top == window // true top === window // false 

请参阅此处了解为什么在IE中检查带有===的窗口对象是不安全的。

我认为根本原因是IE与Windows操作系统紧密结合,因此您可以通过window引用各种操作系统对象,并且相等检查就会消失。 那并且它只是没有正确处理全局host对象。