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:
class User {
name() {
console.log('method');
}
}
Hozzunk létre egy objektumot ebből az osztályból:
let user = new User;
Hívjuk meg a metódusát, egyelőre minden működni fog:
user.name(); // működik
Most pedig írjunk adatot az azonos nevű tulajdonságba, ezzel felülírva a metódus kódját:
user.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.
Javítsa ki a következő kódban elkövetett hibát:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}