Por que definir propriedades no protótipo é considerado um antipadrão
Muitas vezes vejo esse padrão para definir objetos javascript
function Person(name) {
this.name = name;
}
Person.prototype.describe = function () {
return "Person called "+this.name;
};
E emEste artigo ele diz que adicionar propriedades diretamente ao protótipo objct é considerado um antipadrão.
Vindo de linguagens baseadas em "classes clássicas", ter que definir as propriedades separadamente dos métodos não soa bem, mais do que em javascript, onde um método deve ser apenas uma propriedade com um valor de função (estou bem aqui?)
Eu queria saber se alguém pode explicar isso, ou até mesmo sugerir uma maneira melhor de lidar com essas situações