我正在玩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;
这很有趣,因为注释掉这一行仍然可以在全局对象中使用$.
为什么需要这个?似乎调用init方法的jQuery函数创建了$way的全局方式.我在Chrome,Firefox和Safari上进行了测试,他们都可以在没有Expose jQuery的情况下使用全局对象线.
这适用于旧版浏览器和向后兼容性?
最佳答案 jQuery库在闭包中定义,该行真正将库公开到全局范围.
alert($)
我尝试在小提琴http://jsfiddle.net/RBG7P/1/中评论该行,它引发了我一个例外.当没有评论时,它起作用了.
你确定你做得对吗?
本文转自网络文章,转载此文章仅为分享知识,如有侵权,

本文深入探讨了jQuery库的工作原理,特别是其全局暴露机制。通过分析jQuery内部构造,揭示了为何需要将jQuery对象暴露给全局对象,以及这背后的兼容性和历史原因。同时,通过实例演示了如果缺少这一行代码,将会导致的运行异常。
272

被折叠的 条评论
为什么被折叠?



