Konflikty nazw metod i właściwości w OOP w JavaScript
Nazwy właściwości i metod nie powinny pasować, spowoduje to konflikt. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę:
class User {
name() {
console.log('method');
}
}
Utwórzmy obiekt tej klasy:
let user = new User;
Wywołajmy jej metodę, na razie wszystko będzie działać:
user.name(); // działa
A teraz zapiszmy dane we właściwość o tej samej nazwie, tym samym nadpisując kod metody:
user.name = 'str';
user.name(); // błąd
Aby uniknąć takich konfliktów zawsze nadawaj metodom nazwy-czasowniki, a właściwościom - nazwy-rzeczowniki.
Popraw błąd popełniony w następującym kodzie:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}