Постараюсь быть неимоверно кратким.
Написано для тех, кто только начинает!
Статей про наследование в JS не счесть:
Считаю важным добавить, что есть терминологическая разница на уровне языка носителей, т.е. — английского. И это принципиально важно, когда Вы работаете с прототипами в JS.
У меня в google по запросу "what is the difference between inheritance and legacy" первая ссылка ведёт сюда: ссылка.
Само собой, что статей там не одна.
Там есть такая строчка, дописка: Also, as pointed out in some comments, «inheritance» is generally from the viewpoint of the receiver, while «legacy» is from the viewpoint of the giver: My inheritance was my father's legacy.
Краткая суть, которая не отражает всей глубины, которую я себе уяснил, в том, что:
- legacy — это взгляд со стороны родителя, широкий
- inheritance — это взгляд со стороны потомка, узкий
Поэтому я считаю, что в обычных ООП языках программирования типа Java, C#, С++ и т.п. используется термин inheritance — наследование.
А у нас в JavaScript используется почти то же самое, но немного шире: legacy — наследство.
А т.к. в Русском Языке разницы между этими понятиями почти нет, то отсюда и масса FuckUp'ов с пониманием зачем это нужно.
И, в том числе потому, что от Legacy code мы никуда не денемся.
UPD: В комментариях подсказывают, что речь идёт о Гипотезr Сепира-Уорфа, спасибо.
Читать полностью »