2010年6月5日土曜日

4. addEventListenerとthis

<pre> <next>
謎は二つです。

  1.addEventListenerに書かれた謎のfunction()

  2.myHandler関数内のthisとはだれか?

この二つが「奇妙な愛憎劇」のように絡んでいます(笑)

addEventListenerは先にも書きましたように、マウスのボタンが押された時にシステムから渡されるイベントを取り込んで、そのイベントを扱う(ハンドルする)関数としてmyHandler()関数を登録しています。このmyHandler()関数はすぐには実行されずイベントが発生した時に(非同期に)実行されます・・・と言う事は他のサイトにも書かれていて、言わずもがなの話しです。

構文は以下のようになります。

  addEventListener(イベント名, ハンドラ関数名, falseまたはtrue)

イベント名はclickやkeyup、mousedownなどイベント駆動型のプログラミングでおなじみのもので、指定したイベントが発生するとハンドラ関数が呼び出されます。最後の引数はイベントが呼び出されるタイミング(登りか下りか)を表します。

論より証拠です。実際にサンプルコード1を書き換えて、この構文に合わせてaddEventListenerを呼び出すとどのようになるか「現場検証」してみましょう(笑)
<pre> <next>

0 件のコメント: