5

我一直在寻找,但没有任何线索……或者我没有找到正确的方法(如果重复,请见谅)

以下代码是否意味着:如果没有定义 jQuery,或者没有准备好文档?

!function ($) {

///

!function ($) {

  $(function(){ // I know this is an alias to $(document).ready()

  .....

}(window.jQuery) // Ending of !function

我在问,因为我在这里看到了它:http: //twitter.github.io/bootstrap/assets/js/application.js并且没有,我真的不知道它是什么意思。

4

2 回答 2

5

在这种情况下,!使用 is 是因为它是一个运算符,因此该行的其余部分将被视为表达式而不是语句。这是一种编写立即调用的函数表达式的方法。更常见的成语可以在这里找到:

Javascript 立即调用函数模式

于 2013-06-25T19:29:33.957 回答
3

!on afunction(){}()简单地翻转(或否定)立即调用定义的函数后返回的值。请注意,在函数定义之后的最后一行,它说(window.jQuery)— 将 jQuery 作为参数传递给函数并立即调用它。

但在这种情况下,它似乎没有做任何重要的事情,因为无论如何都不会使用返回值。该功能仍将被执行。

此外,它在文件顶部这样说:

// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S ALL JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++

因此,这进一步证明了它并不是为了任何真正的目的。

于 2013-06-25T19:20:46.863 回答