将函数传递给jQuery选择器

时间:2013-08-21 08:28:00

标签: javascript jquery document-ready

我已经知道在这样的函数中包装Javascript的优点:

(function () {
    // code goes here
}())

但是我看到一些脚本通过将包装函数传递给jQuery对象来实现这一目的:

$(function () {
    // blah blah blah blah blah
});

这样做有什么好处,还是仅仅是个人品味的问题?并且第二种做法是否否定了$(document).ready()的需要?

3 个答案:

答案 0 :(得分:0)

你的第一个例子只是标准JavaScript一个自执行函数,第二个例子是jQuery特定的,是$(document).ready(function () {});的快捷方式

请参阅the jQuery documentation

以及this question有关自执行函数的更多信息

答案 1 :(得分:0)

第一个

(function () {
    // code goes here
}())

That is self executing function.

第二个功能是jquery特定的。

If you see the docs

.ready()方法只能在与当前文档匹配的jQuery对象上调用,因此可以省略选择器。

.ready()方法通常与匿名函数一起使用:

$(document).ready(function() {
  // Handler for .ready() called.
});

这相当于调用:

$(function() {
     // Handler for .ready() called.
    });

答案 2 :(得分:0)

(function(){}())是一个IIFE(立即调用的函数表达式),它只是一个立即执行的函数
$(function(){})是浏览器准备就绪时的jQuery回调

我经常要将jQuery添加到有mootools的网站上,以避免美元冲突,我会做这样的事情:

;(function($, app, undefined){
    // code here
}(jQuery, myApp = window.myApp || {}))