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);
!function ($) {
$(function() {
.
.
.
})
}(window.jQuery)
我在 jquery 示例中看到了这一点,想知道 !function($){}(window.jQuery) 的用途。尤其是感叹号对我来说是新的。
最佳答案
好吧,我在做了一些研究后找到了答案,但我会将答案留给其他人。
基本上是为了避免与其他也使用美元符号的 JavaScript 库发生冲突。
因此,Jquery 建议使用 jQuery 或 window.jQuery 而不是美元符号。它通常与 jQuery.noConflict() 结合使用,让 jQuery 在混合库时放弃其他 javascript 库中使用的 $ 符号。
这实际上是运行自执行函数的一种方式,该函数传入window.jQuery对象并传递它到 $ 符号。这样您就可以继续在代码中使用美元符号,而不必担心其他 javascript 库可能会与您的代码发生冲突。
将其包装在此函数中可以避免在各处使用 window.jQuery 来替换 $ 符号。
如果您像这样执行 function () {}()
,则会导致语法错误,因为它只是一个函数声明。 <强>!将其转换为可以执行的表达式。
所以基本上您可以将两者用于相同的目的。
!function($){}()
(function($){})()
随意修改或补充。
引用文献:
关于javascript - !function ($) { }(window.jQuery) 这段代码的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13770704/