Question about jQuery source == on window
data: function( elem, name, data ) {
if ( !jQuery.acceptData( elem ) ) {
return;
}
elem = elem == window ? windowData : elem;
Copied directly from the jQuery source.
Why is it not safe to use elem === window
?
Why does 开发者_开发问答jQuery use type coercion on the window
object?
It would appear that in IE there's an issue with top
top == window // true
top === window // false
See here for why checking againts the window object with ===
is unsafe in IE.
I think the root cause is that IE is closely coupled with the Windows OS so you have various OS objects referenced through window
and the equality check just dies. That and it just doesn't handled the global host
object correctly.
精彩评论