静的ユーティリティメソッド
CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 33/56。
静的メソッドは、クラスのインスタンスではなく、クラス自体に属するユーティリティ関数です。これらは、インスタンス固有のデータへのアクセスを必要としない関数に役立ちます。
静的なユーティリティメソッドを持つクラスを作成しましょう:
class MathHelper {
// 静的メソッドを定義します
static square(number) {
return number * number;
}
}静的メソッドを呼び出すには、クラス名を直接使用します。
// インスタンスを作成せずに静的メソッドを呼び出す
const result = MathHelper.square(5);
console.log(result); // 25new MathHelper() で新しいインスタンスを作成する必要がなかったことに注目してください。静的メソッドは、インスタンスデータを必要とせずに操作を実行するユーティリティ関数に最適です。
チャレンジ
StringUtils という名前のクラスを作成し、文字列を引数として受け取り、最初の文字を大文字にした同じ文字列を返す capitalize という静的メソッドを作成してください。例えば、入力が "javascript" の場合、メソッドは "Javascript" を返す必要があります。このクラスをエクスポートしてください。
- 文字列が空かどうかを確認します:
if (!str || str.length === 0)(このチェックがないと、空の文字列が問題を引き起こす可能性があります)。!strはnull/undefinedをチェックします(エラーを防止します)str.length === 0は空の文字列をチェックします(クラッシュする代わりに "" を返します)
- 最初の文字を取得します:
str.charAt(0) - それを大文字にします:
.toUpperCase() - 残りの文字列を取得します:
str.slice(1)(位置 1 から最後まで) - 組み合わせる:大文字にした最初の文字 + 残りの文字列
チートシート
静的メソッドは、インスタンスではなくクラス自体に属するユーティリティ関数です。これらはインスタンス固有のデータへのアクセスを必要としません。
staticキーワードを使用して静的メソッドを定義します:
class MathHelper {
static square(number) {
return number * number;
}
}インスタンスを作成せずに、クラスで直接静的メソッドを呼び出します:
const result = MathHelper.square(5);
console.log(result); // 25静的ユーティリティに役立つ文字列メソッド:
str.charAt(0)- 最初の文字を取得しますstr.toUpperCase()- 大文字に変換しますstr.slice(1)- 位置1から最後までの部分文字列を取得します!str || str.length === 0- null/undefinedまたは空の文字列かどうかをチェックします
自分で試してみよう
import { StringUtils } from './stringUtils.js';
// 以下のコードを変更しないでください
console.log(StringUtils.capitalize("programming"));このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。