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

标签 javascript jquery

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/

相关文章:

javascript - 删除data-id属性值

javascript - 十进制 js 四舍五入 3digit 数字 [可能是一个错误?]

javascript - 主干中的嵌套 View 和事件

javascript - jQuery .click() 不会触发,但 onclick 会触发

jquery - csurf AJAX 调用 - 无效的 CSRF token

javascript - 我怎样才能扩展这个?

javascript - 使用 JIRA REST API 请求 Jsonp 时出错

javascript - Onclick 事件在另一个函数的产品内不起作用

javascript - 为多个客户端渲染 html View

javascript - JS 函数不起作用