次のコードでは、関数writeMessage
がかっこなしで呼び出されます。しかし、それはうまく動作しますが、それは正しい関数の呼び出し方法はJavaScriptまたはより良いかっこをwriteMessage()
と一緒に使用することです。JavaScript関数を呼び出す正しい方法は何ですか?
window.onload = writeMessage;
function writeMessage()
{
document.write("Hello World");
}
次のコードでは、関数writeMessage
がかっこなしで呼び出されます。しかし、それはうまく動作しますが、それは正しい関数の呼び出し方法はJavaScriptまたはより良いかっこをwriteMessage()
と一緒に使用することです。JavaScript関数を呼び出す正しい方法は何ですか?
window.onload = writeMessage;
function writeMessage()
{
document.write("Hello World");
}
これは既に正しいことです。
括弧は必要ありません。これは、関数をwindow.onload
に保存しているだけで、自分で呼び出すわけではありません。
window.onload = writeMessage;
は呼び出しではありません。これは割り当てです。 writeMessage
関数をwindow
オブジェクトのonload
フィールドに割り当てます。実際の呼び出しは、内部でwindow.onload()
として実行されます。これは、ケースではwriteMessage()
に相当します。
次のコードも? onclick = "writeMessage" ' – sandbox
@sandbox:いいえ、HTMLの' onclick' *属性*内に書くのは、関数の本体となるので、そこで 'writeMessage'を呼び出すには、* call *' writeMessage'が必要です(例えば 'onclick =" writeMessage(); ")。しかし、あなたのマークアップに 'onXYZ'属性を使用することは避けてください。物事をフックする良い方法があります。 –
@ T.J.Crowder onclickがjavascript関数にある場合...?例えば: 'document.getElementById(" redirect ")。onclick = myFunction();' – sandbox
次のコードでは、関数writeMessageはかっこなしで呼び出されます。
実際にはありません。コード
window.onload = writeMessage;
はは、関数を呼び出すしません。 onload
プロパティにwindow
の関数を割り当てます。ブラウザでページを読み込むプロセスの一部は、読み込みプロセスが完了したら、そのプロパティに割り当てられた関数(存在する場合)を起動することです。
あなたがwriteMessage
を呼び出し、ちょうどx = foo();
のように、結果window.onload
への呼び出しの割り当てているやっていると思います何
window.onload = writeMessage();
を書いた場合。
あなたがdocument.write
を呼び出すときため、ページのロードdocument.write
を実行し、あなたが実際に引用されたコードは、ちょうどロードされたページを一掃し、テキスト「こんにちは」と交換することに注意してくださいページのロードが完了した後は、document.open
を意味し、ページをクリアします。 (hereを試してください;ソースコードhere)現代のWebページやアプリケーションでは、ほとんどdocument.write
を使用しませんが、まれに、ページがロードされているときに実行されるコードでなければなりません)。
()
はあなたが
window.onload = writeMessageを書くとき機能
をEXECUTE に使用されます。 onload
イベントがoccourます -
pointer
)デリゲートを設定します。
多くのことがそうであるように、JavaScriptでは何かを行う正しい方法はありません。同じことをする方法はたくさんありますが、それぞれが同じ「正しさ」を持っています。さらに重要なことに、かっこを使用するかどうかを決めるには、JavaScriptの関数宣言と同じ行に、他の言語とは異なるが、「正しい」という意味の*を*必ず入れてください。 – danwellman