JavaScript中自我声明匿名函数之前的美元符号

Dollar sign before self declaring anonymous function in JavaScript?

本文关键字:美元 符号 函数 自我 声明 JavaScript      更新时间:2023-09-26

这两者之间的区别是什么:

$(function () {
    // do stuff
});

(function () {
    // do stuff
})();

第一个使用jQuery将函数绑定到document.ready事件。第二个声明并立即执行一个函数。

$(function() {});是的jQuery快捷方式

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

(function() {})();是一个即时调用的函数表达式,或IIFE。这意味着它是一个表达式(而不是语句(,并且在创建后会立即调用。

它们都是匿名函数,但(function(){})()会立即调用,$(function(){})会在文档准备好时调用。

jQuery的工作原理类似于此。

window.jQuery = window.$ = function(arg) {
    if (typeof arg == 'function') {
        // call arg() when document is ready
    } else {
       // do other magics
    }
}

因此,您只需要调用jQuery函数并传入一个函数,该函数将在文档就绪时调用。

"自执行匿名函数"与执行此操作相同。

function a(){
    // do stuff
}
a();

唯一的区别是您没有污染全局命名空间。

一个是jquery $(document).ready函数,另一个只是一个调用自己的匿名函数。
$(function () {
    // It will invoked after document is ready
});

这个函数在文档准备好后执行意味着,整个HTML应该在执行之前加载,但在第二种情况下,函数在创建后立即调用。

(function () {
    // It will invoked instantly after it is created
})();