LINUX.ORG.RU

Зачем это делают в nodejs?

 , ,


0

1

там в модуле utils есть функция inherits, которая принимает 2 аргумента, конструктор и суперконструктор(хз, как это еще назвать). она сеттит в prototype конструктора __proto__ prototype суперконструктора, и назначает свойство super_ конструктора, как ссылку на суперконструктор. Получается в итоге, что при создании объекта дочерним конструктором, этот объект наследует от prototype суперконструктора.

Вот такие забавные конструкции. Получается наследование конструкторов, чтоли, или хз, как это назвать еще.

Если взглянуть на конструкторы в консоли, то можно увидеть, что почти все конструкторы в nodejs перевязаны таким вот, с позволения сказать, «наследованием», у них у всех наблюдается это свойство super_

Собственно вопрос. Нахрен вообще это нужно? Что это вообще дает им? С виду это смахивает на какие то аттские и уродские костыли.



Последнее исправление: portquest2016 (всего исправлений: 2)

Это старый костыль, который не убирают по причинам обратной совместимости.

В документации про это упомянуто: https://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor

Не используй util.inherits, используй extends из ECMAScript 2015.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.