我正在玩弄 jQuery 的胆量,只是为了了解它是如何工作的。我大部分都理解它,但我对某些事情感到好奇。
在 jQuery 中,我们有这个来实际创建 jQuery 对象(在线60
):
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
方法比较长,init
复制粘贴就省去了(想看的看源码,在线的123
)。此方法可通过jQuery.prototype
. 本质上,它会查看参数并就元素选择做出一些决定。
进一步向下脚本(在线19174
)我们有这个:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
这很有趣,因为注释掉这一行仍然$
可以在全局对象中使用。
为什么需要这个?似乎jQuery
调用该方法的函数创建了任一方式init
的全局。$
我在 Chrome、Firefox 和 Safari 上对此进行了测试,它们都可以在没有Expose jQuery to the global object
线路的情况下使用。
这适用于较旧的浏览器和向后兼容吗?