Navnekonflikter for metoder og egenskaper i OOP i JavaScript

Navn på egenskaper og metoder bør ikke samsvare, dette vil forårsake konflikt. La oss se på et eksempel. La oss si at vi har følgende klasse:

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

La oss opprette et objekt av denne klassen:

javascriptlet user = new User;

La oss kalle metoden, foreløpig vil alt fungere:

javascriptuser.name(); // fungerer

Og nå skriver vi data til egenskapen med samme navn, og overskriver dermed koden til metoden:

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

For å unngå slike konflikter bør du alltid gi metoder verb-navn, og egenskaper substantiv-navn.

Задание 1

Rette feilen som ble gjort i følgende kode:

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