Conflitos de nomenclatura de métodos e propriedades em POO em JavaScript
Os nomes de propriedades e métodos não devem coincidir, pois isso causará um conflito. Vamos ver um exemplo. Suponha que temos a seguinte classe:
class User {
name() {
console.log('method');
}
}
Vamos criar um objeto desta classe:
let user = new User;
Vamos chamar seu método, por enquanto tudo funcionará:
user.name(); // funciona
Agora, vamos atribuir dados à propriedade de mesmo nome, substituindo assim o código do método:
user.name = 'str';
user.name(); // erro
Para evitar tais conflitos, sempre dê aos métodos nomes que são verbos, e às propriedades, nomes que são substantivos.
Corrija o erro cometido no seguinte código:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}