JavaScriptのOOPにおけるプライベートプロパティ
外部から読み書きできるオブジェクトのプロパティはパブリックと呼ばれます。 また、クラス内部でのみアクセス可能なプライベートプロパティも存在します。
プライベートプロパティの名前は#記号で始める必要があります。
さらに、そのようなプロパティはクラスコードの冒頭で宣言されなければなりません。
これを実装してみましょう:
class User {
#name;
}
次に、このプロパティにデータを書き込みます。 これは、例えばクラスのコンストラクタ内で行うことができます:
class User {
#name;
constructor(name) {
this.#name = name;
}
}
ここで、このプロパティの値を返すメソッドを作成しましょう:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
ユーザー名をパラメータとして渡し、 クラスのオブジェクトを作成しましょう:
let user = new User('john');
クラスの外部でこのプロパティに直接アクセスしようとすると、 エラーが発生します:
console.log(user.#name); // エラー
しかし、作成したメソッドを呼び出すことで、 このプロパティを読み取ることができます:
console.log(user.show()); // 'john' を出力
Employeeクラス内で、
名前、給与、年齢という3つのプライベートプロパティを作成してください。
これらのプロパティの値をコンストラクタのパラメータとして渡してください。
従業員のデータを表示するメソッドを作成してください。