JavaScriptにおけるOOPのメソッドとプロパティの名前衝突

プロパティとメソッドの名前が 一致してはいけません。これは衝突を引き起こします。 例を見てみましょう。 次のクラスがあるとします:

javascriptclass User {
  name() {
    console.log('method');
  }
}

このクラスのオブジェクトを作成します:

javascriptlet user = new User;

メソッドを呼び出してみると、 今のところは動作します:

javascriptuser.name(); // 動作する

では、同じ名前のプロパティにデータを書き込み、 それによってメソッドのコードを 上書きしてみます:

javascriptuser.name = 'str';
user.name(); // エラー

このような衝突を避けるためには、 メソッドには動詞の名前を、 プロパティには名詞の名前を 常に付けるようにしてください。

Задание 1

次のコードで行われている 誤りを修正してください:

javascriptclass Employee {
  constructor(salary) {
    this.salary = salary;
  }
  salary() {
    return this.salary + '円';
  }
}