如果我没有传递调用匿名函数的jQuery对象会发生什么:
$(function($) {...}
而不是
$(function($) {...} (jQuery);
它似乎仍然适用于所有脚本,那么为什么要在网络上的任何地方明确地传递它?
答案 0 :(得分:2)
如果您有另一个使用$作为其主要对象的库,该怎么办?在这种情况下,可能会将第二个库的对象传递给您的函数并且插件中断。
想象一下,你使用我的名为foo的库。在该库中,我使用#
作为我的全局对象。要使用我的库,您可以使用#
启动代码:
#.getAllLinks().follow();
现在假设您使用另一个像jQuery一样使用$
符号作为其根对象的库。 (我认为Google Analytics就是这样一个图书馆)。在这种情况下,要在浏览器中加载的最新库将赢得比赛并控制$
符号。在这种情况下,当您想在插件中使用$
时,实际上是指错误的库。但是当显式传递jQuery名称时(jQuery的根对象都可以使用$
符号或jQuery访问),那么你可以确保在插件的范围内使用jQuery,而不是另一个库。 :)