Bri*_*and 13

其他人解释了不同之处,但不是为什么你使用后者.

$变量是最常用的jQuery.如果你有一个加载jQuery的脚本标签和另一个加载你的代码的脚本标签,那就完全没问题了.现在将prototype.js投入混合.如果你加载prototype.js然后加载jQuery,$仍然是jQuery.反过来,现在$是prototype.js.

如果您尝试$在此类页面上使用,则可能会出现错误或奇怪的行为.

StackOverflow上有很多关于这个问题的问题.插件不应该对它们加载的页面有很多假设,所以他们在防御中使用这种模式.


mbe*_*sky 3

\n

我问 (function(){/ \xe2\x80\xa6 /})();之间是否有区别 和 (函数($){/ \xe2\x80\xa6 /})(jQuery);

\n
\n\n

有点差别。如果(function($){/*\xe2\x80\xa6*/})(jQuery);没有 jQuery,您将在页面加载后立即收到错误消息。当基于 jquery 的代码在 jQuery 之前包含时,检测 jquery 缺失或脚本包含顺序不正确会更简单。

\n\n

(function(){/*\xe2\x80\xa6*/})();此构造中的代码实际调用 jQuery 方法之一时,您会收到错误消息。检测此错误比较困难,但另一方面,您可以在 jquery 之前包含基于 jquery 的脚本。

\n\n

我更喜欢第一种情况。

\n