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

イベントハンドラーは特定のイベントに対応する関数、イベントリスナーはそれを登録・監視する仕組み

イベントハンドラー

イベントハンドラーはイベント発生時に実行される関数やメソッドです。HTMLの属性(onclick属性など)で直接指定するか、JavaScriptで関数を割り当てます。単一のイベントに対して1つの処理を紐付けるシンプルな方式で、簡潔ですが複数の処理を同時に実行できません。

例:ボタン.onclick = function() { alert('クリック'); };

イベントリスナー

イベントリスナーはイベントの発生を監視し、複数の関数を登録できる仕組みです。addEventListener()メソッドを使って柔軟にイベント処理を追加・削除できます。同じイベントに複数の処理を割り当てられ、モダンな開発では標準的な手法となっています。

例:ボタン.addEventListener('click', () => alert('クリック'));

両者の違い

ハンドラーはイベントに直接割り当てた単一の関数で、属性形式で指定するか変数に代入する方式です。リスナーはアドレス帳のように複数登録でき、同じイベントに複数処理を追加可能です。ハンドラーは古い書き方で扱いやすく、リスナーはモダンで拡張性に優れています。オブジェクト指向設計では、リスナーが推奨されます。

どちらを使うべき?判断のポイント

シンプルな1対1の処理はハンドラー、複数の処理を柔軟に管理したい場合はリスナーを選びます。新規開発ではaddEventListener推奨。既存HTMLの属性変更が難しい場合のみハンドラーを活用します。

それぞれの語をさらに詳しく

語彙の星図で「イベントハンドラー」と「イベントリスナー」のつながりを探索する →