Naamkonflikte van metodes en eienskappe in OOP in JavaScript

Die name van eienskappe en metodes moet nie ooreenstem nie, aangesien dit 'n konflik sal veroorsaak. Kom ons kyk na 'n voorbeeld. Laat ons die volgende klas hê:

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

Laat ons 'n objek van hierdie klas skep:

javascriptlet user = new User;

Kom ons roep sy metode, vir nou sal alles werk:

javascriptuser.name(); // werk

Laat ons nou data in die eienskap met dieselfde naam skryf, en sodoende die kode van die metode oorskryf:

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

Om sulke konflikte te vermy, gee altyd werkwoorde as name vir metodes, en selfstandige naamwoorde as name vir eienskappe.

Задание 1

Korrigeer die fout wat gemaak is in die volgende kode:

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