Javascript 为什么每个jquery插件都用(函数($){})(jquery)包装;

Javascript 为什么每个jquery插件都用(函数($){})(jquery)包装;,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,每次我看到这样的jQuery插件时: (function($) { $.fn.example = function(options) { return this.each(function() { return 'Example!'; }); } })(jQuery); 我想知道包装功能: (function($) { // ... })(jQuery); 有必要吗?若有,原因为何?如果没有,还有哪些替代方案/优势

每次我看到这样的jQuery插件时:

(function($) {
    $.fn.example = function(options) {
        return this.each(function() {
           return 'Example!';
        });
    }

})(jQuery);
我想知道包装功能:

(function($) {
   // ...
})(jQuery);

有必要吗?若有,原因为何?如果没有,还有哪些替代方案/优势?

同意火箭的评论。发件人:

但是等等!我所知道和喜爱的令人敬畏的美元符号在哪里?它是 不过,为了确保你的插件不会发生冲突,仍然存在 对于其他可能使用美元符号的图书馆来说,这是最好的选择 将jQuery传递给一个自动执行函数(闭包)的实践 将其映射到美元符号,这样它就不会被其他符号覆盖 在其执行范围内的库


这也有助于/防止全局命名空间污染。除非您尝试-通过将某些内容分配给
窗口
,例如,您创建的任何变量都将保留在函数的本地,您不必担心与任何其他代码的命名冲突——在其他jQuery插件中或其他地方——包括使用
$

这样做是为了确保插件在自己的范围内,不会干扰任何内容

许多库使用
$
作为快捷方式,因此我们将传递
jQuery
并将其分配为
$
,以确保它不会干扰


jQuery在他们的文档中解释了它的用法:

这样做基本上是为了给插件一个闭包,在这个闭包中,$sign不会与旁边使用的其他库发生冲突。

看一看:可能重复的代码。我在等你回答。将链接添加到您的答案中,我会给您一个+1.:)