!function($){}(window.jQuery)这段代码是什么用的?

时间:2012-12-07 20:45:00

标签: javascript jquery

  

可能重复:
  What is the purpose of this? (function ($) { //function code here })(jQuery);
  What does the exclamation mark do before the function?
  negating self invoking function? !function ($) { … }(window.jQuery);

!function ($) {
     $(function() {
            .
            .
            .
    })
}(window.jQuery)

我在一个jquery示例中看到了这个,并想知道!function($){}(window.jQuery)的用途。特别是感叹号对我来说是新的。

1 个答案:

答案 0 :(得分:2)

好的我在做了一些研究之后想通了,但我会把答案留给其他人。

基本上是避免与其他javascript库冲突,它们也使用了这个美元符号。

所以Jquery建议使用 jQuery或window.jQuery而不是美元符号。它通常与 jQuery.noConflict()结合使用,当你混合库时,jQuery会放弃其他javascript库中使用的$符号。

这实际上是一种运行自动执行功能的方式,传递 window.jQuery对象并传递在$ 标志上。这样,您可以继续在代码中使用美元符号,而不必担心可能导致与代码冲突的其他JavaScript库。

在此函数中包装它可以避免使用window.jQuery无处不在来替换$符号。

如果您 execute function () {}() 这样会导致语法错误,因为它只是一个函数声明。 !把它变成一个可以执行的表达式

所以基本上你可以将两者用于同一目的。

!function($){}()
(function($){})()

随意修改或补充。

参考: