コンストラクタ

編集

基本概念

編集

コンストラクタは、JavaScriptにおいてオブジェクトのインスタンスを生成するための特別な関数です。新しいオブジェクトを作成し、初期化するために使用されます。

構文

編集

コンストラクタは、通常、大文字で始まる関数名で定義されます:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

インスタンス生成

編集
newキーワードを使用してコンストラクタからインスタンスを作成します:
let john = new Person('John Doe', 30);

プロトタイプメソッド

編集

コンストラクタのプロトタイプにメソッドを追加できます:

Person.prototype.sayHello = function() {
    console.log(`こんにちは、私の名前は${this.name}です`);
};

ES6クラス構文

編集

モダンなJavaScriptでは、クラス構文を使用してコンストラクタを定義できます:

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    sayHello() {
        console.log(`こんにちは、私の名前は${this.name}です`);
    }
}

注意点

編集
  • newキーワードを忘れると、thisが意図しない値を参照する可能性があります
  • アロー関数はコンストラクタとして使用できません
  • instanceof演算子でオブジェクトのインスタンス型を確認できます

高度な使用例

編集

プライベートフィールドの実装

編集

ES2022以降、プライベートフィールドをサポートしています:

class BankAccount {
    #balance; // プライベートフィールド

    constructor(initialBalance) {
        this.#balance = initialBalance;
    }

    deposit(amount) {
        this.#balance += amount;
    }
}

関連概念

編集
  • プロトタイプ継承
  • thisキーワード
  • クラス
  • オブジェクト指向プログラミング