Javascript 什么是(函数($){…})(jQuery)?
我是一名javascript新手,最近接触了以下代码Javascript 什么是(函数($){…})(jQuery)?,javascript,jquery,Javascript,Jquery,我是一名javascript新手,最近接触了以下代码 (function($){ if(!document.defaultView || !document.defaultView.getComputedStyle){ var oldCurCSS = jQuery.curCSS; jQuery.curCSS = function(elem, name, force){ if(name !== 'backgroundPosition
(function($){
if(!document.defaultView || !document.defaultView.getComputedStyle){
var oldCurCSS = jQuery.curCSS;
jQuery.curCSS = function(elem, name, force){
if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
return oldCurCSS.apply(this, arguments);
}
var style = elem.style;
if ( !force && style && style[ name ] ){
return style[ name ];
}
return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
};
}
})(jQuery);
什么是函数($){…}(jQuery)
附言:我也不太明白代码的用途。。。如果可能,请给出提示。这是一个以
jQuery
为参数调用的自动执行异常函数,在函数签名中重命名为$
由于您不知道页面中是否使用了jQuery.noConflict()
(特别是如果您正在编写插件之类的可分发代码),因此可以在函数中安全地使用速记$
编写它的人实际上很愚蠢,因为他在函数内部使用了jQuery
:)
它还可以防止变量污染全局名称空间,并对其进行封装,使其在函数外部不可访问。这是为了确保
$
与jQuery
的含义相同。其他库可能会更改$
的含义,因此需要这样做
函数($)
是以jQuery
作为参数调用的,因此$
在函数中被设置为jQuery
。这是一个自执行函数,可以把它想象成jQuery中的document.ready函数,只是这个函数一旦加载就会启动
(function(){})
将声明该函数,但通过添加()
可以立即触发该函数。
也可以将参数s传递给此函数$
实际上是jQuery
的别名,因此为了确保您使用的是jQuery
,它将作为参数传递并别名为$
,这是惯例
(函数(myAwesomePlugin){})(jQuery)代码>
这也是有效的。您可以像myAwesomePlugin(“#id”)一样使用它。click()
..基本上,它是一个匿名函数,可以让jQuery与其他可能具有$variable/function的javascript库很好地配合使用。它在解析DOM后立即执行,如果存在多个外观,则按外观顺序调用。不过,此时不会显示文档,只是对其进行分析。这是为了防止代码干扰名为$
的全局变量,以便您也可以使用使用$
符号的其他库
在函数内部,$
将只引用jQuery对象
参考除了前面所说的,这个自执行函数封装了所有变量和其他函数,因此主(窗口)名称空间没有受到污染,因为所有变量和函数都是“本地”的