簡體   English   中英

在JavaScript中自我聲明匿名函數之前的美元符號?

[英]Dollar sign before self declaring anonymous function in JavaScript?

這兩者有什么區別:

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

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

第一個使用jQuery將函數綁定到document.ready事件。 第二個聲明並立即執行一個函數。

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

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

while (function() {})(); 是一個即時調用的函數表達式,或IIFE。 這意味着它是一個表達式(不是語句),它在創建后立即被調用。

一個是jquery $(document).ready函數,另一個是調用自身的匿名函數。

它們都是匿名函數,但是(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();

唯一的區別是您沒有污染全局命名空間。

$(function () {
    // It will invoked after document is ready
});

一旦文件准備就緒,這個函數執行意味着整個HTML應該在執行之前加載,但在第二種情況下,函數在創建后立即調用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM