可能重复:
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)的用途。特别是感叹号对我来说是新的。
答案 0 :(得分:2)
好的我在做了一些研究之后想通了,但我会把答案留给其他人。
基本上是避免与其他javascript库冲突,它们也使用了这个美元符号。
所以Jquery建议使用 jQuery或window.jQuery而不是美元符号。它通常与 jQuery.noConflict()结合使用,当你混合库时,jQuery会放弃其他javascript库中使用的$符号。
这实际上是一种运行自动执行功能的方式,传递 window.jQuery对象并传递在$ 标志上。这样,您可以继续在代码中使用美元符号,而不必担心可能导致与代码冲突的其他JavaScript库。
在此函数中包装它可以避免使用window.jQuery无处不在来替换$符号。
如果您 execute function () {}()
这样会导致语法错误,因为它只是一个函数声明。 !把它变成一个可以执行的表达式。
所以基本上你可以将两者用于同一目的。
!function($){}()
(function($){})()
随意修改或补充。
参考: