首頁 >web前端 >js教程 >JavaScript 函式呼叫:空括號-立即呼叫還是引用賦值?

JavaScript 函式呼叫:空括號-立即呼叫還是引用賦值?

Susan Sarandon
Susan Sarandon原創
2024-12-08 13:56:11335瀏覽

JavaScript Function Calls:  Empty Parentheses – Immediate Invocation or Reference Assignment?

JavaScript 函數呼叫:括號很重要

呼叫帶空括號或根本不帶括號的函數對於沒有參數的函數來說可能看起來無關緊要。然而,仔細檢查就會發現一個微妙的差異。

立即呼叫與引用分配

考慮以下兩個範例:

window.onload = initAll();
window.onload = initAll;

1 。立即呼叫:

在第一個範例中,空括號立即呼叫 initAll() 函數,並將傳回值指派給 window.onload。通常,這不是所需的行為,因為 initAll 應在 onload 事件發生時執行。

2.參考賦值:

在第二個範例中,initAll 函數本身被賦值給 window.onload。這意味著該函數在載入事件被觸發之前不會執行。此方法可確保正確設定事件處理程序。

函數作為物件

在 JavaScript 中,函數是第一類物件。這意味著它們可以儲存在變數中,作為參數傳遞,並作為屬性分配。這就是以下語法有效的原因:

window.onload = () => initAll();

在這種情況下,將建立一個匿名函數,該函數在呼叫時會立即呼叫 initAll()。然而,這個外部函數的參考仍然分配給window.onload,因此事件處理程序將等待load事件來觸發這兩個函數的執行。

以上是JavaScript 函式呼叫:空括號-立即呼叫還是引用賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn