Metodų ir savybių pavadinimų konfliktai OOP JavaScript

Savybių ir metodų pavadinimai neturėtų sutapti, tai sukels konfliktą. Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią klasę:

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

Sukurkime šios klasės objektą:

javascriptlet user = new User;

Iškvieskime jo metodą, kol viskas veiks:

javascriptuser.name(); // veikia

O dabar įrašykime duomenis į to paties pavadinimo savybę, tokiu būdu užrašydami metodo kodą:

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

Kad išvengtumėte tokių konfliktų, visada suteikite metodams veiksmažodžius-pavadinimus, o savybėms - daiktavardžius-pavadinimus.

Задание 1

Ištaisykite klaidą, padarytą šiame kode:

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