Почему определение свойств в прототипе считается антипаттерном
Я часто вижу этот шаблон для определения объектов JavaScript
function Person(name) {
this.name = name;
}
Person.prototype.describe = function () {
return "Person called "+this.name;
};
И вЭта статья это говорит о том, что добавление свойств непосредственно к объекту-прототипу считается антишаблоном.
Исходя из «классического класса на основе» языки, определяющие свойства отдельно от методов, звучат не совсем правильно, более того, в javascript, где метод должен быть просто свойством со значением функции (я прав здесь?)
Я хотел знать, может ли кто-нибудь объяснить это или даже предложить лучший способ справиться с этими ситуациями