Menetelmien ja ominaisuuksien nimien ristiriidat OOP:ssa JavaScriptissä

Ominaisuuksien ja menetelmien nimet eivät saa osua yhteen, se aiheuttaa ristiriidan. Katsotaanpa esimerkkiä. Olkoon meillä seuraava luokka:

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

Luodaan tämän luokan olio:

javascriptlet user = new User;

Kutsutaan sen menetelmää, toistaiseksi kaikki toimii:

javascriptuser.name(); // toimii

Kirjoitetaan nyt data samannimiseen ominaisuuteen, ylikirjoittaen näin menetelmän koodin:

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

Tällaisten ristiriitojen välttämiseksi anna aina menetelmille verbi-nimiä ja ominaisuuksille substantiivi-nimiä.

Задание 1

Korjaa seuraavassa koodissa tehty virhe:

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