簡體   English   中英

調用JavaScript函數的正確方法是什么?

[英]What's the correct way to call JavaScript Function?

在以下代碼中,調用函數writeMessage不帶括號。 但是它工作正常,但是在javaScript中調用函數是正確的方法還是更好的方法是將括號與writeMessage()一起使用。

window.onload = writeMessage;

function writeMessage()
{
    document.write("Hello World");
}

window.onload = writeMessage; 不是通話-這是一項任務。 您將writeMessage函數分配為window對象的onload字段。 實際的調用(在內部)作為window.onload() ,在您的情況下等效於writeMessage()

在以下代碼中,調用函數writeMessage時不帶括號。

其實不是。 編碼

window.onload = writeMessage;

調用該函數。 它將函數分配給windowonload屬性。 在瀏覽器中加載頁面的過程的一部分是在加載過程完成后觸發分配給該屬性(如果有)的函數。

如果你寫

window.onload = writeMessage();

您要做的就是調用writeMessage並將調用結果分配給window.onload ,就像x = foo();


請注意,您實際引用的代碼(在頁面加載時執行document.write將清除剛剛加載的頁面,並將其替換為文本“ Hello world”,因為在頁面后調用document.write時加載完成,這意味着document.open ,這將清除頁面。 (試一試這里 ,源代碼在這里 。)在現代網頁和應用程序,你幾乎從來不使用document.write ,但在你做的極少數情況下,它必須在運行的頁面被加載代碼(例如,不遲)。

()用於執行功能

當你寫

window.onload = writeMessage;

您實際上設置了一個委托pointer要執行的函數的pointer ),該委托將在onload事件發生時發生。

沒錯

您不需要括號,因為您只是將函數存儲在window.onload ,而不是自己調用它。

暫無
暫無

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

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