JavaScript 函數呼叫中的括號
在JavaScript 中,當不涉及參數時,呼叫不帶括號的函數可能看起來無括號害。然而,兩種語法之間存在細微的差異:
window.onload = initAll();
window.onload = initAll;
使用括號時:
在函數呼叫中使用括號,如第一個範例,立即執行函數。函數執行的結果(如果有)將被指派給接收函數呼叫的變數或屬性,在本例中為 window.onload。當您打算將函數本身指派給偵聽器時,此執行通常是不可取的。
省略括號時:
省略括號,如第二個範例中,將函數引用直接指派給變數或屬性。此函數僅在偵聽器或事件觸發時才會執行,以確保預期的行為。
附加說明:
您可能遇到的另一個變體是:
window.onload = () => initAll();
這使用了圍繞 initAll 的箭頭函數。它會建立一個在呼叫時立即呼叫 initAll 的函數。但是,由於外部函數被指派給 window.onload,因此它確保 initAll 僅在 load 事件上執行。
以上是JavaScript 中的 `window.onload = initAll();` 和 `window.onload = initAll;` 有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!