JavaScriptにおけるOOPのプライベートメソッド
プライベートにできるのはプロパティだけではなく、 メソッドも同様です。通常、補助的なメソッドをプライベートにすることで、 クラスの外部から誤って呼び出されることを防ぎます。
例を見てみましょう。 次のクラスがあるとします:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
このクラスに、文字列をパラメータとして受け取り、 その最初の文字を大文字にするプライベートメソッドを作成しましょう:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
この補助メソッドを別のメソッド内で使用してみます:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
確認してみましょう。クラスのオブジェクトを作成します:
let user = new User('john');
補助メソッドを使用するパブリックメソッドを呼び出します:
console.log(user.show());
次のコードで、補助メソッドをプライベートにしてください:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '円';
}
}