微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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在该执行上下文中获得它的$.

原文地址:https://www.jb51.cc/jquery/158858.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐