2016-04-07 5 views
0

ページがロードされたときにスクリプトmyFunction(){}を実行する場合、2つの選択肢があります。我々は最初のケースではなく、後者の場合には括弧を必要とする理由htmlインラインイベントハンドラと目立たないイベントハンドラとの間のカッコの使い分け

1 <body onload="myFunction()"> 
2 <script> window.onload = myFunction </script> 

私の質問はありますか?それの背後にある理論は何ですか?

+0

1つは括弧で、もう1つは括弧を付けずに設定します(例:http://stackoverflow.com/a/7969111/438992 –

+0

)ブラウザは、あなたのために 'onload'プロパティに割り当てられている関数を呼び出します。 (フック) – Antiga

+1

@HaNdTriX \t機能をロード時に実行する場合は、この操作を行います。 –

答えて

0

属性バージョンはJavascriptの初期段階に戻っており、評価するスクリプトフラグメントを記述するのではなく、関数を参照するという概念をサポートするのに十分なほど進んでいません。その使用法は、現代のJavascript技術を主張する人々によって今日は眉をひそめている。

+0

これは複数のSO dupeなので、同じ回答を掲示する代わりにそれらを見つけて指摘しましょう。 –

0
<body onload="myFunction()"> 

は、関数呼び出しです。ページがロードされると、関数が呼び出されます。

<script> window.onload = myFunction </script> 

は、関数オブジェクトへの参照です。スクリプトが個別に記述され、管理される一方で、インラインのJavaScriptがHTMLとjavascriptの組み合わせで読むのを苛立たせるので、これはもっと良い解決策です。

+0

これは複数のSO dupeなので、同じ回答を投稿するのではなく、それらを見つけて指すようにしましょう。 –

関連する問題