0

可能重复:
这样做的目的是什么?(function ($) { //这里的函数代码 })(jQuery);
函数前的感叹号有什么作用?
否定自调用函数?!function ($) { ... }(window.jQuery);

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

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

4

1 回答 1

2

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

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

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

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

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

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

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

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

随意修改或补充。

参考:

于 2012-12-07T20:45:00.300 回答