Подтвердить что ты не робот

Зачем использовать общедоступные методы в объектах JavaScript?

Я часть небольшой исследовательской группы на работе, которая пытается лучше понять, что делает JavaScript тика. В наших недавних обсуждениях об объектах мы узнали, что публичные методы объекта воссоздаются каждый раз, когда объект создается, а методы, назначенные прототипу объекта, создаются только один раз и унаследованы всеми экземплярами. Из того, что я понимаю, как общедоступные методы, так и те, которые назначены прототипу, являются общедоступными.

Итак, возникает вопрос, зачем вообще создавать публичные методы, если добавление к прототипу, по-видимому, более эффективно? Какое преимущество предоставляет общедоступный метод, который не поддерживает прототип?

4b9b3361

Ответ 1

Отвечая на это конкретно:

Какое преимущество предоставляет общедоступный метод, который не поддерживает прототип?

Метод, добавленный в конструктор, имеет доступ к частной информации, например:

function Student() {
    var name = 'Bob';
    this.GetName = function() {
        return name;
    }
}

Student.prototype.SomeOtherPublicMethod = function() {
    //no access to name
}