javascript – 有人可以解释jQuery中的函数($)

最近我正在阅读其他人的代码,并发现了这个:
// Semicolon (;) to ensure closing of earlier scripting
// Encapsulation
// $is assigned to jQuery
;(function($) {

     // DOM Ready
    $(function() {
        ...
  });

})(jQuery);

我理解领先的观点;,我理解$(function(){与文档准备相同,但添加函数($)的重点是什么?

我知道它是一个闭包,但由于它总是在全局范围内调用,所以看起来你不需要打扰它. $(function(){将使用相同的全局对象,不是吗?

它是为了防范某些事情,还是出于其他原因的最佳做法?

解决方法

这是jQuery插件的常见结构.它可以防止已被覆盖的$标识符用于其他内容.在匿名函数中,$总是引用jQuery.

例:

$= "oh no";
$(function() { //Big problem!
    //DOM ready
});

通过引入新范围,您可以确保$引用您期望的内容

$= "oh no";
(function($) { //New scope,$is redeclared and jQuery is assigned to it

    $(function() { //No problem!
        //DOM ready
    }); 

}(jQuery));

其背后的主要原因是许多其他JavaScript库使用$作为标识符(例如PrototypeJS).如果你想同时使用Prototype和jQuery,你需要让Prototype拥有它的$identifier,但是你可能不希望每次想要调用jQuery方法时都写出jQuery.通过引入一个新的作用域,您可以让jQuery在该执行上下文中获得它的$.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...