Javascript 什么是(函数($){…})(jQuery)?

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

我是一名javascript新手,最近接触了以下代码

(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对象


参考

除了前面所说的,这个自执行函数封装了所有变量和其他函数,因此主(窗口)名称空间没有受到污染,因为所有变量和函数都是“本地”的