ブログblog

イベントハンドラーとイベントリスナーの違い について

Writer: tokuyasu 更新日:2023/08/14

こんにちは、デジナーレ福岡オフィスの徳安です。

この記事では、イベントハンドラーとイベントリスナーの違い
について説明いたします。

イベント

ウィンドウ上のプログラムでマウスクリックや
入力によって所定の処理が始まるが、
この時のマウスクリックなどの動作を「イベント」という。



イベントハンドラー

イベント発生時に行う処理内容を記述したプログラム(関数)を
「イベントハンドラー」という。
イベントを設定したい要素に対して、
onイベント名プロパティを使用して関数を代入
実行したい内容を記述する。

イベントハンドラーは、ひとつのイベントしか登録できない!

  * 豆知識 *

  「handle(ハンドル)」にはさばく、処理するという意味がある。
イベントに対する処理を行うもの = イベントハンドラーと呼ばれる。

「アクションに対して、所定の処理を起動する」
  プログラミングスタイルのことを
「イベント駆動型プログラミング」と呼ばれます。

インラインイベントハンドラー

最初期のイベントハンドラーにインラインイベントハンドラー
(イベントハンドラーHTML属性)があり、
属性値がイベント発生時に実行したい
JavaScriptのコードそのものになっている。
ちょっとした動作をつける際に簡単に使えるものになるが
コードが肥大化してくるとあっという間に手が付けれない、
効率の悪いものになってしまう。

コードを書く際にHTMLとJavaScriptを混在させると、
読みにくくなり可読性が落ちてしまうため、
JavaScriptのコードはHTMLのコードと分けて記述する方がよい。



イベントリスナー

イベントの発生を監視し、イベントが発生した際に
呼び出す処理(関数)のこと。
addEventListenerメソッドの第一引数にイベントを指定し、
第二引数に実行したい処理内容を記述する。
イベントリスナーは複数のイベント処理を登録することが可能

イベントの削除


HTMLの基本動作のキャンセル方法

event.preventDefault()はイベントが起こったときの
基本動作をキャンセルするもので、
インターフェイスのメソッドである。

HTMLタグには基本動作があらかじめ定義されているものがあり、
必要ない場合キャンセルすることができる。


イベントハンドラーとイベントリスナーの違い

イベントハンドラーは、イベントが発生した際に応答として動作する処理」で、
イベントリスナーはイベントの発生を監視し、
イベントが発生した際に「呼び出す処理」のこと

イベントハンドラーは、ひとつのイベントしか登録できないが、
記述が比較的簡素である。

同じイベントに再度イベント処理を登録することで、
後から登録したハンドラーを上書きすることができる。
ハンドラーの削除がしたい場合は、
で削除が可能。

イベントリスナーは、複数のイベント処理を登録できるが、
記述が複雑になりやすい
しかし、必要な時にリスナーを複数追加できることは、
利点となっている。

まとめ



今回は、イベントハンドラーとイベントリスナーについての内容でした。

ここまで、読み進めていただきありがとうございます。