Namnkonflikter för metoder och egenskaper i OOP i JavaScript

Namn på egenskaper och metoder bör inte matcha, detta kommer att orsaka en konflikt. Låt oss titta på ett exempel. Låt oss säga att vi har följande klass:

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

Låt oss skapa ett objekt av denna klass:

javascriptlet user = new User;

Låt oss anropa dess metod, så länge kommer allt att fungera:

javascriptuser.name(); // fungerar

Och nu skriver vi data till en egenskap med samma namn, och skriver därmed över metodkoden:

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

För att undvika sådana konflikter, ge alltid metoder verb-namn, och egenskaper substantiv-namn.

Задание 1

Rätta felet som gjorts i följande kod:

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