为了防止冲突的prototype.js使用jQuery我裹在下面的代码片段我的jQuery代码:自执行函数参数
(function($) {
})(jQuery);
如果我理解这一点correnctly,$ === jQuery
将是真实的我的函数中。但是在这种情况下,实际的“参数”jQuery
,它在我的函数里面获得别名$
?
如果我的假设是正确的,是否需要在两个地方都通过jQuery
才能称之为jQuery
,还是可以在函数结束时传递它?
为了防止冲突的prototype.js使用jQuery我裹在下面的代码片段我的jQuery代码:自执行函数参数
(function($) {
})(jQuery);
如果我理解这一点correnctly,$ === jQuery
将是真实的我的函数中。但是在这种情况下,实际的“参数”jQuery
,它在我的函数里面获得别名$
?
如果我的假设是正确的,是否需要在两个地方都通过jQuery
才能称之为jQuery
,还是可以在函数结束时传递它?
在您的IIFE中,您可以使用$
或jQuery
- 它们都在范围内。
只有(jQuery)
实际上是被传递作为参数 - 所述$
仅仅是功能参数(因此别名为jQuery
)。
一看就知道,你的代码是几乎等同于:
var f = function($) {
...
};
f(jQuery);
除了你IIFE是一个匿名函数。
谢谢,只是我正在寻找的解释 – Johan
如果我很明白这一点,$ === jQuery将在我的函数内成立。但是,在这种情况下,实际的“参数”jQuery中,我的函数中获取别名$?
是。 $
是参数名称,变量jQuery
是您作为参数传入的参数 - 它可以是任何表达式。
如果我的假设是正确的,我需要通过jQuery的两个地方,以调用它的jQuery,或者这将是确定,只是通过它在函数的结束?
是的,您需要重命名该参数。只有它没有多大意义,因为您可以参考全局jQuery
变量,然后(除非您打算覆盖该变量,例如使用不同的jQuery版本) - $
别名仅为简洁起见。如果您想避免与Prototype混淆,请改为使用jQ
。
在闭包中,只有$
可靠引用jQuery库;更具体地说,是当时的库版本。
当以后加载另一个版本的库时,只有$
仍然指向您所期望的; jQuery
符号将被后一版本所取代。
如果您希望在函数内部使用jQuery
别名,则需要在函数参数中将$
重命名为jQuery
。
'$'是参数名称,变量'jQuery'(可以是任何表达式)是您作为参数传入的内容。 – Bergi
@Bergi谢谢,这就是我需要的:) – Johan