При написании серьезных проектов перед JavaScript программистами встает выбор: пожертвовать ...
... some comments, «
» is generally ... п. используется термин
— наследование.
...
Постараюсь быть неимоверно кратким.
Написано для тех, кто только начинает!
Статей про наследование в JS не счесть:
- Здесь, на Хабре
- google
- yandex
Считаю важным добавить, что есть терминологическая разница на уровне языка носителей, т.е. — английского. И это принципиально важно, когда Вы работаете с прототипами в 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 2: Выжимка из статьи про
legacy code >>
Modern interpretations.
… source code inherited from someone else and source code inherited from an older version of the software…
UPD 3: Под катом идёт речь о том, что Inheritance неминуемо влечёт за собой Legacy. Точней наоборот, согласно терминологии носителей языка Legacy — это больше чем Inheritance.
UPD 1: В комментариях подсказывают, что может быть частично речь идёт о Гипотезе Сепира-Уорфа. Спасибо k12th. Так же спасибо lair за конструктивную критику.
Читать дальше →