Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Для чего в наследовании надо переопределять constructor

#javascript #ооп


Наследование в javascript реализуется так 

Child.prototype = Object.create(Parent.prototype)
Child.prototype.constructor = Child


Вопрос в следующем: зачем нужна 2-ая строка?
    


Ответы

Ответ 1



Дело в том, что когда создается функция, интерпретаторы javascript автоматически назначают ей свойство prototype: function Foo() { // ... } Foo.prototype = { constructor: Foo }; // Происходит неявно и автоматически Так исторически сложилось. А раз такое свойство есть - то есть и библиотеки которые на него завязываются! Поэтому при переопределении свойства prototype нужно восстановить правильное значение constructor.

Комментариев нет:

Отправить комментарий