【JavaScript】クラスプロパティ - クラスレベルのプロパティ

【JavaScript】クラスプロパティ - クラスレベルのプロパティ

JavaScriptのクラスプロパティについて解説します。

検証環境

クラスプロパティ

クラスプロパティは“クラスレベルのプロパティ”です。

クラスの特有プロパティのため、オブジェクトプロパティとは異なり、オブジェクトを生成しなくてもアクセス可能なプロパティになります。

オブジェクトの共通プロパティなどに使用し、クラスプロパティはオブジェクトには含まれません。

定義

クラスプロパティはプロパティの前にstaticキーワードを付けて定義します。

基本構文

class クラス名 {
    static プロパティ名;
}

定義時に初期化することも可能です。

class クラス名 {
    static プロパティ名  = 値;
}

サンプル

class Person {
    ___ih_hl_start
    static domain = "HUMAN";
    ___ih_hl_end
}
 

2行目のstatic domain = "HUMAN"がクラスプロパティの定義です。

クラスプロパティは定義のみでは動作に影響はありません。

値の取得

クラスプロパティ値の取得はクラス経由で行います。

基本構文

クラス名.クラスプロパティ名

クラス名とクラスプロパティ名をドット(.)で繋いで記述します。

サンプル

class Person {
    static domain = "HUMAN";
}

___ih_hl_start
console.log(Person.domain);
___ih_hl_end
HUMAN

5行目のPerson.domainがクラスプロパティの値の取得です。

実行結果から正常に値を取得できていることが確認できます。

値の記憶

クラスプロパティ値の記憶はクラス経由で行います。

基本構文

クラス名.クラスプロパティ名 = 値

クラス名とクラスプロパティ名をドット(.)で繋いで記述し、代入演算子で値を記憶します。

サンプル

class Person {
    static domain = "HUMAN";
}

___ih_hl_start
Person.domain = "NINGEN";
___ih_hl_end

console.log(Person.domain);
NINGEN

5行目のPerson.domain = "NINGEN"がクラスプロパティ値の記憶です。

実行結果から初期値は"HUMAN"ですが、"NINGEN"を記憶したため、値が変わっていることが確認できます。