JavaScriptにおけるOOPのプライベートメソッド

プライベートにできるのはプロパティだけではなく、 メソッドも同様です。通常、補助的なメソッドをプライベートにすることで、 クラスの外部から誤って呼び出されることを防ぎます。

例を見てみましょう。 次のクラスがあるとします:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

このクラスに、文字列をパラメータとして受け取り、 その最初の文字を大文字にするプライベートメソッドを作成しましょう:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

この補助メソッドを別のメソッド内で使用してみます:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#cape(this.#name);
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

確認してみましょう。クラスのオブジェクトを作成します:

javascriptlet user = new User('john');

補助メソッドを使用するパブリックメソッドを呼び出します:

javascriptconsole.log(user.show());
Задание 1

次のコードで、補助メソッドをプライベートにしてください:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getSalary() {
    return this.addSign(this.salary);
  }
  
  addSign(num) {
    return num + '円';
  }
}