关于javascript:!function($){}(window.jQuery)这段代码是什么?

!function ($) { }(window.jQuery) what is this code for?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
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);

1
2
3
4
5
6
7
!function ($) {
     $(function() {
            .
            .
            .
    })
}(window.jQuery)

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


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

基本上它是为了避免与其他使用美元符号的JavaScript库发生冲突。

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

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

将它包装在此函数中可以避免在任何地方使用window.jQuery来替换$符号。

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

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

1
2
!function($){}()
(function($){})()

随意修改或补充。

引用:

  • 这样做的目的是什么? (function($){//这里的函数代码})(jQuery);
  • 感叹号在功能之前做了什么?