JavaScript. Объявление методов объекта — обязательно через прототип? В коде закомментированы два варианта. Оба работоспособны.
Корректно ли использовать второй вариант или он приводит к расходу лишней памяти?var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
// вариант 2
// this.greet = function () {return "Hello, " + this.greeting;};
}
// вариант 1
//Greeter.prototype.greet = function () { return "Hello, " + this.greeting; };
return Greeter;
})();
var a = new Greeter('123');

21 Авг 2019 в 07:09
138 +1
1
Ответы
1

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

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

С другой стороны, использование прототипа позволяет сэкономить память, так как за одну функцию будет отвечать лишь один объект, а все его экземпляры будут ссылаться на эту функцию через прототип.

Поэтому, если вы создаете много экземпляров объекта и хотите оптимизировать использование памяти, рекомендуется использовать первый вариант с объявлением методов через прототип.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 989 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир