カテゴリ: JavaScript 更新日: 2025/08/26

JavaScriptのオブジェクトで使うthisキーワードをマスターしよう

JavaScriptのオブジェクトのthisキーワードの使い方をマスターしよう
JavaScriptのオブジェクトのthisキーワードの使い方をマスターしよう

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

生徒

「JavaScriptのオブジェクトで、thisってよく見かけるんですが、これって何ですか?」

先生

thisは『このオブジェクト自身を指す』ための特別なキーワードです。使い方をしっかり理解すれば、オブジェクトをもっと便利に扱えますよ。」

生徒

「初心者にはちょっと難しそうですが、どうやって使うんですか?」

先生

「大丈夫、ゆっくり順番に見ていきましょう!」

1. thisとは何か?

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

JavaScriptのthisは、「今実行している関数がどのオブジェクトに属しているか」を指します。オブジェクトの中で使えば、そのオブジェクト自身を表します。

イメージとしては、「自分自身を指さす矢印」のようなものです。

2. オブジェクト内メソッドでのthis

2. オブジェクト内メソッドでのthis
2. オブジェクト内メソッドでのthis

オブジェクトの中にある関数(メソッド)の中でthisを使うと、そのオブジェクトを指します。


const user = {
  name: "花子",
  greet() {
    console.log(this.name + "さん、こんにちは!");
  }
};

ここでuser.greet()を実行すると、 thisuserを指し、名前を使ってあいさつできます。


花子さん、こんにちは!

3. thisの使い道と注意点

3. thisの使い道と注意点
3. thisの使い道と注意点

オブジェクトのプロパティを使って計算したり、別のメソッドを呼び出すときにthisが便利です。


const counter = {
  count: 0,
  increment() {
    this.count++;
  }
};
counter.increment();
console.log(counter.count); // 1

ここではthis.countを使うことで、自分のカウント値を増やしています。

4. thisがundefinedになるケース

4. thisがundefinedになるケース
4. thisがundefinedになるケース

注意したいのは、関数だけを取り出して呼ぶと、thisが期待したオブジェクトではなくundefinedになります。


const fn = user.greet;
fn(); // thisがuser以外を指してundefinedになる

このようなときは、.bind()やアロー関数で対応できます。

5. bindを使ってthisを固定する

5. bindを使ってthisを固定する
5. bindを使ってthisを固定する

.bind()メソッドを使えば、関数の中でthisを指定したオブジェクトに固定できます。


const boundGreet = user.greet.bind(user);
boundGreet(); // userを指して正しくあいさつできる

6. アロー関数とthis

6. アロー関数とthis
6. アロー関数とthis

アロー関数はthisを外側のスコープから引き継ぎます。オブジェクト内でアロー関数を使うとthisが別のオブジェクトを指すので、注意が必要です。


const obj = {
  value: 10,
  show: () => {
    console.log(this.value); // undefinedになる
  }
};
obj.show();

メソッドでは普通の関数を使いましょう。

7. thisを使う場面は?

7. thisを使う場面は?
7. thisを使う場面は?
  • オブジェクトのプロパティを安全に参照したいとき
  • メソッド同士で情報をやり取りしたいとき
  • イベントやコールバックで呼ばれる関数でもthisが指すものをコントロールしたいとき

初心者のうちは、まず「オブジェクトの中ではthis=そのオブジェクト」と覚えておくと良いでしょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptのモジュール分離と単一責任原則(SRP)に基づく設計を初心者向けに徹底解説
New2
JavaScript
JavaScriptの正規表現を文字列に動的に組み込む方法(RegExpコンストラクタ)
New3
TypeScript
TypeScriptでグローバル名前空間の汚染を避ける設計方法!モジュール設計の基本
New4
JavaScript
JavaScriptの正規表現をデバッグするツールの使い方
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの正規表現をデバッグするツールの使い方
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの正規表現を使ったバリデーション例まとめ
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptの正規表現で否定のパターンを表す方法を学ぼう
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの正規表現でlookahead・lookbehindを使う応用例
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの正規表現のよくあるエラーとその対処法