Metódus- és tulajdonságnév ütközések az OOP-ben JavaScriptben

A tulajdonságok és metódusok neveinek nem szabad egyeznie, mert az ütközést fog okozni. Nézzük meg egy példán. Tegyük fel, hogy van a következő osztályunk:

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

Hozzunk létre egy objektumot ebből az osztályból:

javascriptlet user = new User;

Hívjuk meg a metódusát, egyelőre minden működni fog:

javascriptuser.name(); // működik

Most pedig írjunk adatot az azonos nevű tulajdonságba, ezzel felülírva a metódus kódját:

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

Hogy elkerüljük az ilyen ütközéseket, mindig adjon a metódusoknak igei neveket, a tulajdonságoknak pedig főnevi neveket.

Задание 1

Javítsa ki a következő kódban elkövetett hibát:

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