Navnekonflikter for metoder og egenskaber i OOP i JavaScript

Navne på egenskaber og metoder bør ikke vare de samme, da det vil forårsage en konflikt. Lad os se på et eksempel. Antag, at vi har følgende klasse:

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

Lad os oprette et objekt af denne klasse:

javascriptlet user = new User;

Lad os kalde dens metode, indtil videre virker alt:

javascriptuser.name(); // virker

Og nu skal vi tildele data til en egenskab med samme navn, hvilket overskriver metodekoden:

javascriptuser.name = 'str';
user.name(); // fejl

For at undgå sådanne konflikter bør du altid give metoder verbumnavne, og egenskaber - substantivnavne.

Задание 1

Ret fejlen, der er begået i følgende kode:

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