Зачем использовать общедоступные методы в объектах JavaScript?
Я часть небольшой исследовательской группы на работе, которая пытается лучше понять, что делает JavaScript тика. В наших недавних обсуждениях об объектах мы узнали, что публичные методы объекта воссоздаются каждый раз, когда объект создается, а методы, назначенные прототипу объекта, создаются только один раз и унаследованы всеми экземплярами. Из того, что я понимаю, как общедоступные методы, так и те, которые назначены прототипу, являются общедоступными.
Итак, возникает вопрос, зачем вообще создавать публичные методы, если добавление к прототипу, по-видимому, более эффективно? Какое преимущество предоставляет общедоступный метод, который не поддерживает прототип?
Ответы
Ответ 1
Отвечая на это конкретно:
Какое преимущество предоставляет общедоступный метод, который не поддерживает прототип?
Метод, добавленный в конструктор, имеет доступ к частной информации, например:
function Student() {
var name = 'Bob';
this.GetName = function() {
return name;
}
}
Student.prototype.SomeOtherPublicMethod = function() {
//no access to name
}