Задать вопрос
dom1n1k
@dom1n1k

Как влияет прототип на потребление памяти в JS?

Допустим, я пишу JS-библиотеку по такой вот схеме.
Ключевая особенность тут в том, что непосредственно данных (свойств) в объекте типа DummyClass немного, но очень-очень много методов (которые тянутся из прототипа).
(function () {
	// конструктор
	function DummyClass (prop) {
		this.someProperty = prop;
	}

	DummyClass.prototype = {
		// очень много разных методов
	}

	window.DummyClass = DummyClass;
})();

Вопрос: если я потом создам много экземпляров класса DummyClass, то сколько они отожрут памяти?
Мне так думается, что в соответствии с объемом свойств (плюс какие-то накладные расходы), а прототип хранится в один.
Но вдруг я неправ? Или в основном прав, но есть важные "нюансы"?
  • Вопрос задан
  • 196 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Сергей Протько К ответам на вопрос (2)
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
прототип копируется

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