プライベートメソッド
CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 19/56。
JavaScript クラスの Private メソッドを使用すると、実装の詳細を隠し、内部機能への外部からのアクセスを防ぐことができます。
ES2022 以降では、# 接頭辞を使用して private メソッドを定義できます。
class Counter {
#count = 0;
// プライベートメソッドを作成する
#increment() {
this.#count++;
}
// プライベートメソッドを使用するパブリックメソッド
addOne() {
this.#increment();
return this.#count;
}
}Counter インスタンスを作成しましょう:
const myCounter = new Counter();publicメソッドを呼び出せます。
console.log(myCounter.addOne()); // 出力: 1しかし、private メソッドに直接アクセスしようとすると、エラーが発生します:
myCounter.#increment(); // エラー: プライベートメソッドはクラスの外からアクセスできませんPrivate メソッドは、内部実装の詳細を外部から隠すことで、カプセル化の維持に役立ちます。
チャレンジ
メッセージを格納するMessageBoxクラスが与えられています。あなたの課題は、メッセージを検証する#isValidMessage(text)というprivateメソッドを追加することです。このメソッドは次のように動作します:
- テキストが空ではなく、100文字未満の場合は
trueを返す - それ以外の場合は
falseを返す
自分で試してみよう
import { MessageBox } from './messageBox.js';
// メッセージボックスを使用する
const box = new MessageBox();
console.log(box.setMessage("Hello")); // "Message set!" (uses #isValidMessage)
console.log(box.setMessage("")); // "Invalid message!" (uses #isValidMessage)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: JavaScriptオンラインコンパイラ