JavaScript

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

後輩ちゃん
後輩ちゃん
先輩!今日は何を教えてくれるんですか?
先輩くん
先輩くん
今日は、JavaScriptのイベント設定をするイベントリスナーとイベントハンドラの違いについて教えるよ!
後輩ちゃん
後輩ちゃん
よろしくお願いします!

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

イベントリスナーとは

イベントリスナーとは、JavaScriptでイベントを使う方法の一つで、addEventListenerメソッドの第一引数にイベントを指定し、第二引数に関数を指定し実行したい処理の内容を記述します。

イベントリスナーの使い方は以下の通りです。
const elem = document.getElementById('HTML要素'); // トリガーになる要素を取得

elem.addEventListener('イベント',function(){
  // 処理内容を記述
})

イベントハンドラとは

イベントハンドラとは、JavaScriptでイベントを使うもう一つの方法で、イベントを設定したい要素に対して.onイベント名()プロパティを使用して関数を代入し実行したい処理の内容を記述します。

イベントハンドラの使い方は以下の通りです。
const elem = document.getElementById('HTML要素'); // トリガーになる要素を取得

elem.イベント() = function(){
  // 処理内容を記述
};

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

後輩ちゃん
後輩ちゃん
イベントを設定する2種類の書き方について理解できたのですが、2つの違いはあるんですか?
先輩くん
先輩くん
大きな違いとしてイベントを複数登録できるか、できないかの違いがあるよ!
これについて詳しく解説するね!


上記サンプルの、イベントリスナーと書かれたボタンをクリックすると、新しく「1つ目のイベント処理」「2つ目のイベント処理」の2つのテキストが生成されます。しかし、イベントハンドラと書かれたボタンをクリックして、生成されるテキストは「2つ目のイベント処理」のみで「1つ目のイベント処理」が表示されません。

このように、イベントリスナーを使って複数のイベントを登録した場合、登録したイベントの処理分を実行してくれますが、イベントハンドラで複数のイベントを登録すると最初に登録したイベントは後に登録したイベントに上書きされてしまいます。

イベントリスナーとイベントハンドラは、イベントを登録するという用途は同じですがこのような違いがあります。

イベントリスナーとイベントハンドラはどちらを使うべき?

イベントリスナーとイベントハンドラどちらを使うべきかは、ユースケースによって完全に異なりますが一般的にはイベントリスナーのaddEventListenerメソッドを使うことが一般的です。

まとめ

今回はJavaScriptのイベントリスナーとイベントハンドラの違いについて解説しました。
最後にポイントを軽くおさらいしましょう。

ポイント

  • イベントリスナーでは複数のイベントを登録することができるが、イベントハンドラでは最後に登録されたイベントのみが実行される

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村