カテゴリ: JavaScript 更新日: 2026/02/06

JavaScriptのイベントハンドラ内でのthisの扱い方を徹底解説

JavaScriptのイベントハンドラ内でthisの扱い方を解説
JavaScriptのイベントハンドラ内でthisの扱い方を解説

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptのボタンをクリックしたときに、このボタン自身を参照したいです。」

先生

「その場合は、イベントハンドラ内のthisを使うと便利です。thisは、関数が呼ばれた対象を指す特別なキーワードです。」

生徒

「でも、アロー関数を使った場合はどうなりますか?」

先生

「アロー関数はthisを持たず、外側のスコープのthisをそのまま使います。そのため、イベント対象の要素を指さないことがあります。」

1. thisとは何か?

1. thisとは何か?
1. thisとは何か?

JavaScriptのthisは、現在の関数がどのオブジェクトに属しているかを示す特別な変数です。イベントハンドラでは、通常thisはイベントを発生させた要素を指します。例えば、ボタンをクリックしたとき、そのボタン自体を参照することができます。

2. 通常の関数でのthisの使い方

2. 通常の関数でのthisの使い方
2. 通常の関数でのthisの使い方

通常の関数をイベントハンドラに使うと、thisはイベントを発生させた要素になります。


const button = document.getElementById("myButton");

button.addEventListener("click", function() {
  console.log(this); // クリックしたボタン要素を表示
  this.style.backgroundColor = "lightblue";
});

この例では、ボタンをクリックするとthisがそのボタンを指し、背景色を変えることができます。

3. アロー関数とthisの違い

3. アロー関数とthisの違い
3. アロー関数とthisの違い

アロー関数は自分のthisを持たず、外側のスコープのthisを使います。そのため、イベントハンドラとして使うと想定通りに動かないことがあります。


button.addEventListener("click", () => {
  console.log(this); // windowや外側のオブジェクトを表示
  // this.style.backgroundColorはエラーになる
});

アロー関数は便利ですが、イベント対象の要素をthisで操作したい場合は避けましょう。

4. イベントオブジェクトを使ったthisの代替

4. イベントオブジェクトを使ったthisの代替
4. イベントオブジェクトを使ったthisの代替

イベントオブジェクトのevent.targetを使えば、アロー関数でもクリックされた要素を取得できます。


button.addEventListener("click", (event) => {
  const clickedElement = event.target;
  clickedElement.style.backgroundColor = "pink";
  console.log(clickedElement); // ボタン要素
});

アロー関数を使いたい場合は、event.targetを活用することでthisの代わりにイベント対象を操作できます。

5. まとめのポイント

5. まとめのポイント
5. まとめのポイント

イベントハンドラ内でthisを使うと、イベントを発生させた要素を簡単に参照できます。ただし、アロー関数を使うとthisは外側のスコープを指すため注意が必要です。その場合はevent.targetを使うことで、イベント対象の要素を正しく取得できます。適切にthisを理解して使うと、ボタンやフォームなどの操作が簡単に行えます。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの条件式で論理演算子(&&, ||, !)を活用する方法!初心者でもわかる使い方ガイド
New2
TypeScript
TypeScriptでエラー処理を共通関数化して効率的に開発しよう!初心者向け例外処理ガイド
New3
JavaScript
JavaScriptの条件式における比較演算子の使い方まとめ!初心者でもわかる基本ルールと活用法
New4
JavaScript
JavaScriptのswitch文の基本構文と使いどころを学ぼう!初心者でもわかる条件分岐の書き方
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptで統一感のあるコードを書くための基本ルール完全ガイド初心者向けコーディング規約入門
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptのonclick・onchangeなどの基本イベントを理解しよう
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptのnever型を使ったエラーハンドリング!例外処理を極める安全なコードの書き方
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptでクエリパラメータを取得する方法を完全解説 URLSearchParamsの使い方を初心者向けに丁寧に説明