Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery/js中的自执行函数_Javascript_Jquery - Fatal编程技术网

Javascript jquery/js中的自执行函数

Javascript jquery/js中的自执行函数,javascript,jquery,Javascript,Jquery,通常,我们将执行以下操作: 第一类 (function(){ }()); 类型2 +function(){ }(); 但是今天我看到了这个 $(run); function run(){ //.. } 与前两个版本相比有什么不同?第三个版本在技术上与前两个版本不同。前两种结构只是编写可以执行的表达式的一种方式,因为函数声明(以function关键字开头的语句)不能立即调用 第三个不同。它是jQuery文档就绪语法之一。如果该函数被传递到$函数中,则该函数要么被附加到回调堆栈中,以便在

通常,我们将执行以下操作:

第一类

(function(){

}());
类型2

+function(){

}();
但是今天我看到了这个

$(run);

function run(){
//..
}

与前两个版本相比有什么不同?

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

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

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

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

$(run)
是hanlder1st和2nd are iLife使用的语法之一。。第二个是代码缩减的安全防护。。第三个是document ready所以
(function(){
+function(){
)之间有什么区别?如果在我的脚本开始时我使用$(function(){});或者document.ready,那么使用第三个就没有意义了?是的,在这种情况下它是多余的。您只需直接调用它
run()