jquery / js中的自执行函数

时间:2015-03-18 07:00:44

标签: javascript jquery

通常我们会做其中的一些:

第一种类型

(function(){

}());

输入2

+function(){

}();

但今天我看到了这个

$(run);

function run(){
//..
}

与前两者有什么不同?

1 个答案:

答案 0 :(得分:0)

第三个版本在技术上与前两个版本不同。这两个第一个结构只是一种编写可以执行的表达式的方法,因为函数声明(以function关键字开头的语句)不能立即调用。

第三个是不同的。它是jQuery文档就绪语法之一。如果函数被传递到$函数,它将被附加到要在DOMContentLoaded事件上调用的回调堆栈(如果尚未发生),或者 - 它立即被调用。

检查jQuery's source代码以了解它在这种情况下如何处理函数。摘要:

// ...
} else if ( jQuery.isFunction( selector ) ) {
    return rootjQuery.ready !== undefined ?
        rootjQuery.ready( selector ) :
        // Execute immediately if ready is not present
        selector( jQuery );
}