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

JavaScriptのクラス構文とオブジェクト指向の基礎を学ぼう|初心者でもわかるクラス入門

JavaScriptのクラス構文とオブジェクト指向の基礎を学ぼう
JavaScriptのクラス構文とオブジェクト指向の基礎を学ぼう

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

生徒

「JavaScriptでクラスってよく聞くけど、何のために使うんですか?」

先生

「クラスは、似たようなものをまとめて作るための設計図のようなものです。オブジェクト指向プログラミングの基本の一つで、ものごとを整理しやすくする役割がありますよ。」

生徒

「設計図?どういうことか具体的に教えてください!」

先生

「わかりました!それでは、JavaScriptのクラス構文とオブジェクト指向の基本をわかりやすく説明しますね。」

1. クラスって何?設計図のようなもの

1. クラスって何?設計図のようなもの
1. クラスって何?設計図のようなもの

クラスとは、同じ種類のものをまとめて作るための「設計図」のようなものです。たとえば、車を作るときに「車クラス」を作って、車の特徴や動き方を決めておきます。その設計図を使って、実際の車(オブジェクト)を何台も作ることができます。

プログラミングの世界でいうオブジェクトとは、「もの」や「データのかたまり」のことです。クラスはそのオブジェクトを作るための型(テンプレート)とも言えます。

2. JavaScriptのクラス構文の基本

2. JavaScriptのクラス構文の基本
2. JavaScriptのクラス構文の基本

JavaScriptでクラスを作るときは、classというキーワードを使います。基本の書き方は次の通りです。


class Car {
  constructor(name, color) {
    this.name = name;   // 名前をセット
    this.color = color; // 色をセット
  }

  drive() {
    console.log(this.name + "が走ります。");
  }
}

ここで使っているconstructorは「コンストラクター」と読み、オブジェクトを作るときに呼ばれる特別な関数です。thisは「このクラスで作られたオブジェクト自身」を意味します。

3. クラスからオブジェクトを作ってみよう

3. クラスからオブジェクトを作ってみよう
3. クラスからオブジェクトを作ってみよう

上のクラスを使って実際に車のオブジェクトを作ってみましょう。


const myCar = new Car("プリウス", "赤");
myCar.drive(); // プリウスが走ります。

newは「新しいオブジェクトを作るよ」という意味です。myCarは車のオブジェクト名で、driveメソッドを呼ぶと車が走る動作をします。

4. オブジェクト指向って何?

4. オブジェクト指向って何?
4. オブジェクト指向って何?

オブジェクト指向とは、プログラムを「もの(オブジェクト)」として考える考え方です。人や車、商品などをオブジェクトとして扱い、それぞれに特徴(プロパティ)や動作(メソッド)を持たせて整理します。

これにより、プログラムが現実の世界に近い形で表現でき、管理や拡張がしやすくなります。

5. クラスで作るオブジェクトの特徴(プロパティ)と動作(メソッド)

5. クラスで作るオブジェクトの特徴(プロパティ)と動作(メソッド)
5. クラスで作るオブジェクトの特徴(プロパティ)と動作(メソッド)

先ほどのCarクラスでは、namecolorがプロパティ、driveがメソッドです。

  • プロパティ:オブジェクトの「特徴」や「情報」。例:色や名前
  • メソッド:オブジェクトができる「動作」や「処理」。例:走る、止まる

オブジェクト指向では、これらをセットで考えます。

6. クラスの継承で機能を増やす(簡単な説明)

6. クラスの継承で機能を増やす(簡単な説明)
6. クラスの継承で機能を増やす(簡単な説明)

クラスは別のクラスを元にして作ることもできます。これを「継承(けいしょう)」と言います。例えば「スポーツカー」というクラスを「車」クラスから作り、走る以外に「スピードを上げる」機能を追加できます。


class SportsCar extends Car {
  turbo() {
    console.log(this.name + "がターボで加速します!");
  }
}

const mySportsCar = new SportsCar("フェラーリ", "赤");
mySportsCar.drive(); // フェラーリが走ります。
mySportsCar.turbo(); // フェラーリがターボで加速します!

extendsは「〜を継承する」という意味で、元のクラスの機能を受け継いで新しい機能を足せます。

7. まとめとして大切なポイント

7. まとめとして大切なポイント
7. まとめとして大切なポイント
  • クラスはオブジェクトを作るための設計図のようなもの
  • constructorはオブジェクトを作るときに呼ばれる特別な関数
  • thisは「そのオブジェクト自身」を指す
  • オブジェクトは「プロパティ」と「メソッド」を持つ
  • 継承を使うと既存のクラスの機能を引き継ぎ、新しい機能を追加できる

JavaScriptのクラス構文とオブジェクト指向の考え方は、プログラムをわかりやすく整理し、複雑な動きを扱うのにとても役立ちます。ぜひ基本からゆっくり理解していきましょう。

まとめ

まとめ
まとめ

ここまでJavaScriptにおけるクラス構文の基礎から、オブジェクト指向の考え方までを詳しく解説してきました。プログラミングを始めたばかりの頃は、「なぜわざわざクラスなんて面倒な書き方をするんだろう?」と疑問に思うかもしれません。しかし、大規模なアプリケーション開発やチームでの共同作業において、クラスはソースコードの可読性と再利用性を劇的に向上させてくれる強力な武器になります。

JavaScriptクラス構文の重要キーワードを再確認

クラスを使いこなすために避けては通れないのが、「プロパティ」「メソッド」、そして「コンストラクタ」の関係性です。これらは、現実世界の「状態」と「振る舞い」をコードに落とし込むための仕組みです。

  • コンストラクタ (constructor): new演算子によってインスタンス化される際に自動実行される初期化処理です。
  • プロパティ (Property): オブジェクトが保持するデータ(変数)です。
  • メソッド (Method): オブジェクトが実行できる処理(関数)です。

実践的なコード例:ユーザー管理クラス

もう少し実用的な例を見てみましょう。ウェブサイトのログインユーザーを管理するようなケースでも、クラスは非常に役立ちます。以下のコードでは、ユーザー名と権限を保持し、挨拶を表示するシンプルなクラスを定義しています。


class User {
  constructor(username, role) {
    this.username = username;
    this.role = role;
  }

  // ユーザーの情報を表示するメソッド
  introduce() {
    console.log(`こんにちは、${this.username}さん。あなたの権限は${this.role}です。`);
  }

  // 権限をチェックするメソッド
  isAdmin() {
    return this.role === "admin";
  }
}

// インスタンスの作成
const user1 = new User("田中太郎", "admin");
const user2 = new User("佐藤花子", "general");

user1.introduce();
console.log("管理者ですか?:", user1.isAdmin());

user2.introduce();
console.log("管理者ですか?:", user2.isAdmin());

実行結果は以下のようになります。


こんにちは、田中太郎さん。あなたの権限はadminです。
管理者ですか?: true
こんにちは、佐藤花子さん。あなたの権限はgeneralです。
管理者ですか?: false

オブジェクト指向がもたらす開発の効率化

オブジェクト指向プログラミング(OOP)の最大の利点は、「カプセル化」「継承」といった概念を利用できる点にあります。カプセル化とは、データとその操作を一つのユニット(クラス)にまとめ、外部から直接触らせないようにすることでバグを防ぐ仕組みです。

また、記事の後半で触れた「継承」をさらに応用すれば、共通の機能を持つ「親クラス」を作り、そこから派生して個別の機能を持つ「子クラス」を量産できます。これにより、同じコードを何度も書く必要がなくなり、修正が必要な際も親クラスを一箇所直すだけで済むという、メンテナンス性の高いコードが実現します。

これからの学習ステップ

クラスの概念を一度にすべて理解するのは大変です。まずは、身の回りにある「もの」をクラスに置き換えて考えてみる練習をしてみましょう。「スマートフォンクラス」なら、プロパティは「モデル名」や「バッテリー残量」、メソッドは「電話をかける」「アプリを開く」といった具合です。

JavaScriptの世界では、ReactやVue.jsといったモダンなフレームワークの内部構造でもクラス(またはそれに準ずるオブジェクトの考え方)が多用されています。基礎をしっかり固めておくことで、より高度なライブラリの習得もスムーズになるはずです。

先生と生徒の振り返り会話

生徒

「先生、クラスの使いどころがだんだん分かってきました!同じ構造のデータをたくさん作る時に、いちいちオブジェクトを書き下さなくていいから楽ですね。」

先生

「その通りです!例えば、オンラインゲームのキャラクターを何百人も作る時に、一人ずつ手書きで設定していたら大変ですよね。クラスという『金型』があれば、一瞬で同じ能力を持ったキャラクターを生成できるんです。」

生徒

「コンストラクタの中で使っている this というのが少し難しかったのですが、あれは結局、新しく作られた自分自身のことを指していると考えていいんですか?」

先生

「鋭いですね!まさにそうです。設計図の段階では誰の名前が入るか決まっていませんが、this.name と書いておくことで、実際に作られたオブジェクト(インスタンス)ごとの名前を正しく保持できるようになるんですよ。」

生徒

「なるほど。継承についても、既存の機能を壊さずに新しい機能を追加できるのが便利だと思いました。これからプログラムを書く時は、整理整頓を意識してクラスを使ってみます!」

先生

「素晴らしい意気込みですね。最初はシンプルなものからで大丈夫です。たくさんコードを書いて、自分なりの『設計図』を積み上げていきましょう。応援していますよ!」

関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう