JQuery:这两个语句有什么区别?

时间:2010-02-12 15:56:19

标签: jquery

这两个陈述之间有什么区别吗?

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

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

5 个答案:

答案 0 :(得分:6)

在决议中,没有区别,它们是等价的

来自相关的源代码

jQuery = window.jQuery = window.$ = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context );
}

jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {

    /* .... irrelevant code.... */

    // HANDLE: $(function)
    // Shortcut for document ready
    else if ( jQuery.isFunction( selector ) )
        return jQuery( document ).ready( selector );     
   }
}

答案 1 :(得分:1)

如果你的意思是

$(document).ready(function() {/* code here */});

$(function() {/* code here */});

然后两者没有区别。后者只是一种与前者相同的捷径。

答案 2 :(得分:1)

对于所有意图和目的,这两个陈述都做同样的事情。然而,在内部,第二个将调用第一个。

答案 3 :(得分:1)

我认为重要的是要指出官方jQuery行是第二种语法:

$(function() {
    // code here
});

是首选。为什么?因为它提供了Resig先生和他的可能性。公司将提出一种出色的新方式来执行负载初始化,这比使用“就绪”事件更好。如果他们这样做,并且您使用更简单的(第二种)做事方式,那么您的代码将立即从改进中受益,而无需任何改变。如果您使用显式绑定到“就绪”事件,那么在您更改之前,您将坚持使用该方法。

答案 4 :(得分:0)

你的意思是:

$(function ()
{
  /* ... */
});

它们在jQuery中是等效的。后者是前者的简写。