Прототипное наследование в JS

405
18 мая 2018, 10:50

Сначала я думал, что разобрался с прототипным наследованием в JS (ведь оно такое простое), а теперь мне кажется, что я не понимаю, зачем все это нужно.

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

Но зачем в JS люди пихают в прототип методы, которые можно определить в самом классе? Ведь здесь нет полиморфизма. В чем профит? Как такое наследование в JS выглядит глобально, какие задачи решает, для чего оно?

Answer 1

Мне кажется, тут дело вот в чем. Помещение методов в прототип уменьшает требования к ресурсам. Если бы методы помещались в конструкторы самих дочерних объектов, то при каждом создании экземпляра такого объекта создавались бы и все его методы в памяти. Если таких объектов тысячи - налицо явный перерасход ресурсов. Таким образом, если метод является общим для всех потомков (реализует какую-то общую функциональность), имеет смысл вынести его в прототип.

READ ALSO
Не удается запарсить xlsx в архив JSON объектов

Не удается запарсить xlsx в архив JSON объектов

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

184
метод объекта с вызовом Ajax с ошибками, и почему так

метод объекта с вызовом Ajax с ошибками, и почему так

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

329
Подсчитать сумму заказа исходя из цены и количества в каждом поле

Подсчитать сумму заказа исходя из цены и количества в каждом поле

Уважаемые знатоки, помогите пожалуйста разобратьсяБьюсь уже пол дня, не могу добиться чтобы при увеличении количества в поле input автоматически...

229