JavaScriptの静的メソッドとは?

 

JavaScript における静的メソッドとは?

JavaScript のクラスにおいて、静的メソッドはクラス自身に関連付けられ、クラスのインスタンスを作成せずに呼び出すことができるメソッドです。これは、特定のオブジェクトの状態に依存しないユーティリティ関数やヘルパー関数に最適です。

静的メソッドの定義

静的メソッドを定義するには、`static` キーワードをメソッド名の前に付けます。


class MathUtils {
  static add(a, b) {
    return a + b;
  }
}

静的メソッドの使用

静的メソッドは、クラス名を使用して直接呼び出すことができます。


let result = MathUtils.add(5, 3);
console.log(result); // 出力: 8

静的メソッドの利点

  • 名前空間の整理: 静的メソッドはクラス名でグループ化されるため、関連する関数を整理できます。
  • インスタンス化の不要: 静的メソッドはインスタンスを作成せずに呼び出すことができます。
  • ユーティリティ関数: 静的メソッドは、オブジェクトの状態に依存しない一般的なユーティリティ関数に適しています。

静的メソッドの例

一般的な静的メソッドの例としては、次のものがあります。

メソッド名 説明
Math.sqrt() 数値の平方根を返します。
JSON.parse() JSON 文字列を JavaScript オブジェクトに変換します。
Date.now() 現在のタイムスタンプを返します。

静的プロパティ

静的メソッドに加えて、JavaScript のクラスは静的プロパティも持つことができます。 静的プロパティはキャッシュ、固定的な構成、その他の各インスタンスに複製する必要のないデータに役立ちます。


class Settings {
  static defaultColor = 'blue';
}

console.log(Settings.defaultColor); // 出力: 'blue'

参考資料

よくある質問

Q1: 静的メソッドとインスタンスメソッドの違いは何ですか?

A1: 静的メソッドはクラス自身に関連付けられ、インスタンスを作成せずに呼び出すことができます。一方、インスタンスメソッドはクラスのインスタンスで呼び出す必要があり、その特定のインスタンスにアクセスできます。

Q2: 静的メソッドはいつ使うべきですか?

A2: 静的メソッドは、ユーティリティ関数、ヘルパー関数、またはオブジェクトの状態に依存しない関数に適しています。

Q3: 静的メソッドから `this` キーワードにアクセスできますか?

A3: いいえ、静的メソッド内では `this` はクラス自身を参照します。インスタンスを参照するわけではありません。

その他の参考記事:JavaScript の静的メソッド