問題一覧に戻る
中級es6
問題87: 静的メソッド
クラスのstaticメソッドを学びましょう。静的メソッドはクラス自体に属し、インスタンスを作成せずに直接呼び出せます。ユーティリティ関数、ファクトリーメソッド、定数の定義などに適しています。インスタンス固有のデータに依存しない処理をまとめるのに便利で、Mathクラスのメソッド(Math.max()など)が代表的な例です。モジュールパターンとしても活用されます。
// 静的メソッド
class MathUtils {
// インスタンスメソッド
constructor(value) {
this.value = value;
}
// 静的な加算
add(a, b) {
return a + b;
}
// 静的な最大値
max(arr) {
return Math.max(...arr);
}
// インスタンスの倍
double() {
return this.value * 2;
}
}
// 静的メソッド呼び出し
console.log(MathUtils.(5, 3));
console.log(MathUtils.([1, 5, 3, 9, 2]));
// インスタンスメソッド呼び出し
const utils = new MathUtils(10);
console.log(utils.double());