【JavaScript】コンストラクタ - クラスから生成するオブジェクトの初期化メソッド

【JavaScript】コンストラクタ - クラスから生成するオブジェクトの初期化メソッド

JavaScriptのコンストラクタについて解説します。

検証環境

コンストラクタ

コンストラクタは“クラスからオブジェクトを生成する際の初期化メソッド”です。

主にオブジェクトのプロパティ値を生成時に設定するために使用します。

定義

コンストラクタはクラスにメソッド名をconstructorとして定義します。

基本構文

class クラス名 {
    constructor( 仮引数1, 仮引数2 ... ) {
        // 初期化処理...
    }
}

サンプル

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

5〜8行目がコンストラクタの定義です。

オブジェクト生成時に実行されるため、定義のみでは動作に影響はありません。

生成

オブジェクト生成時にコンストラクタの実引数を与えます。

基本構文

new クラス名( 実引数1, 実引数2 ...)

コンストラクタに引数がない場合は実引数の記述は必要ありません。

サンプル

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

___ih_hl_start
let p = new Person("TANAKA", 27);
___ih_hl_end

console.log(p.name);
console.log(p.age);
TANAKA
27

11行目でPersonクラスのオブジェクトを生成しており、コンストラクタの実引数として"TANAKA"27を与えています。

コンストラクタは実引数を各プロパティに設定(代入)する処理を行います。

13〜14行目の出力から各プロパティに値が記憶されていることが確認できます。