🚀 次世代JSの最強設計図!「クラス(Class)」でコードを建築せよ:オブジェクト指向プログラミングの第一歩

WEB制作

🤯 序文:関数とデータがバラバラになる問題

これまで、あなたは「ユーザー」のデータを扱う際、こんな風に書いていませんでしたか?

JavaScript

// データ(オブジェクト)
const userData = { name: "Alice", isLogin: false };

// 関連する処理(関数)
function login(user) {
    user.isLogin = true;
    console.log(`${user.name}がログインしました。`);
}

login(userData); // ログイン処理

データ(userData)と、そのデータに紐づく処理(login関数)がバラバラに存在しています。このデータと処理を、**一つの「設計図」**にまとめてしまうのが、クラスという概念です!

クラスを使えば、複雑なデータを扱うWebサイトのコードは、驚くほど整理され、再利用性が爆上がりします。今日から、あなたは単なるコーダーではなく、**「コードの建築家」**へとステップアップします!


1. 🏭 クラスとは?「設計図」と「実体」の関係

クラスは、データ(情報)とそのデータを操作する処理(関数)を一つにまとめた**「設計図」**です。

名称役割実世界の例
クラス (Class)設計図。機能とデータの構造を定義する。自動車の設計図。名前、色、エンジンといった情報と、「走る」「止まる」といった動作が定義されている。
インスタンス (Instance)実体。設計図に基づいて作られた、実際のモノ。実際に製造された一台の車(赤色のトヨタ、黒色のホンダなど)。

Google スプレッドシートにエクスポート

JavaScriptでクラスを定義しても、その時点ではただの「設計図」です。これを使うには、newキーワードを使ってインスタンス化し、「実体」を作り出す必要があります。


2. 🧱 クラスの基本構造:データと処理の定義

クラスは、主に**プロパティ(データ)メソッド(処理)**という2つの要素で構成されます。

2-1. コンストラクター(constructor):実体を生み出す工場

クラスの中で最も重要なのが、constructor(コンストラクター)です。これは、newキーワードで新しい実体(インスタンス)が作られる瞬間に一度だけ実行される特別な関数です。

ここで、その実体が持つべき初期データ(プロパティ)を設定します。

JavaScript

class User {
    // ユーザー設計図の定義
    constructor(name, email) {
        // new User()で呼び出されたときに実行される
        this.name = name;   // プロパティ(データ)
        this.email = email; // プロパティ(データ)
        this.isLoggedIn = false;
    }
    
    // 2-2. メソッド(処理)
    login() {
        this.isLoggedIn = true;
        console.log(`${this.name}がログインしました。ようこそ!`);
    }

    logout() {
        this.isLoggedIn = false;
        console.log(`${this.name}がログアウトしました。`);
    }
}

2-2. メソッド:データに紐づいた動作

クラス内で定義された関数をメソッドと呼びます。メソッドは、そのインスタンスが持つデータ(this.でアクセス)を使って処理を実行します。


3. 🚗 クラスを使ってみる:インスタンス化

定義したクラスを使うには、必ずnewキーワードを使ってインスタンス化します。

JavaScript

// Userクラス(設計図)から、新しいユーザー実体(インスタンス)を2つ作成
const alice = new User("アリス", "alice@example.com");
const bob = new User("ボブ", "bob@example.com");

// 1. データにアクセス (プロパティ)
console.log(alice.name); // 結果: アリス
console.log(bob.email);  // 結果: bob@example.com

// 2. 処理を実行 (メソッド)
alice.login();  // 結果: アリスがログインしました。ようこそ!
bob.login();    // 結果: ボブがログインしました。ようこそ!

// 3. データがインスタンスごとに独立していることを確認
console.log(alice.isLoggedIn); // 結果: true
console.log(bob.isLoggedIn);   // 結果: true

注目すべきは、alicebobはどちらもUserという設計図から作られていますが、それぞれのisLoggedInの状態は完全に独立している点です。これが、クラスを使う最大のメリットです。


🌟 まとめ:今日からコードの設計者になろう!

クラスは、あなたのコードの構造を根底から変える、Web開発の最も強力なツールの一つです。

特徴クラス
定義class ClassName { ... }
実体化const instance = new ClassName(...)
データthis.property(プロパティ)
処理method()(メソッド)

基本ルール:データ(プロパティ)と、そのデータを操作する処理(メソッド)は、必ず同じクラスの中に閉じ込める

このオブジェクト指向の第一歩を踏み出したことで、あなたは複雑なWebアプリケーションのデータとロジックを、整理されたブロック(クラス)として構築できる能力を手に入れました!次のステップでは、このクラスをさらに発展させるテクニックを学び、コードの再利用性を無限に高めていきましょう!

タイトルとURLをコピーしました