Konflikty mien metód a vlastností v OOP v JavaScripte
Mená vlastností a metód by nemali zhodovať, to spôsobí konflikt. Pozrime sa na príklad. Nech máme nasledujúcu triedu:
class User {
name() {
console.log('method');
}
}
Vytvorme objekt tejto triedy:
let user = new User;
Zavolajme jej metódu, pokiaľ všetko bude fungovať:
user.name(); // funguje
A teraz zapíšme dáta do rovnomennej vlastnosti, čím prepíšeme kód metódy:
user.name = 'str';
user.name(); // chyba
Pre vyhnutie sa podobným konfliktom vždy dávajte metódam mená-slovesá, a vlastnostiam mená-podstatné mená.
Opravte chybu, ktorá bola urobená v nasledujúcom kóde:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}