jQuery(function ($) { ... }($)); 的目的

Purpose of jQuery(function ($) { ... }($));

我在我学习的各种项目中看到了这种模式,有时在使用 jQuery 时,开发人员将他们的代码包装在这个函数中:

jQuery(function ($) {
    'use strict';

    /* Application code */

}($)); /* End jQuery */

我试图在 jQuery 文档中查找解释,但并没有找到太多。您能否向我解释一下为什么以及何时应该使用它?对于这样的事情是否有更好的做法/替代方案。

它非常类似于:

$(document).ready(function(){});

阅读本文,您会有所了解...

http://api.jquery.com/jquery.noconflict/

$ 是 jQuery 的别名,有时它会与其他 javascript 库发生冲突,例如在内部也使用 $ 符号的 mootools。

因此,您刚刚在方法范围内为您的代码设置了 $ jQuery 别名:

jQuery(function ($) {
    'use strict';

    /* Application code */

}($));

另一种类似的方法是使用这样的范围:

(function($){
    $(function(){ // <----here you have just secured the $ for your code.
        'use strict';

        /* Application code */
    });
})(jQuery);

没有外包装,它是一个插件定义,见:Basic plugin creation