#javascript #ооп
Наследование в javascript реализуется так Child.prototype = Object.create(Parent.prototype) Child.prototype.constructor = Child Вопрос в следующем: зачем нужна 2-ая строка?
Ответы
Ответ 1
Дело в том, что когда создается функция, интерпретаторы javascript автоматически назначают ей свойство prototype: function Foo() { // ... } Foo.prototype = { constructor: Foo }; // Происходит неявно и автоматически Так исторически сложилось. А раз такое свойство есть - то есть и библиотеки которые на него завязываются! Поэтому при переопределении свойства prototype нужно восстановить правильное значение constructor.
Комментариев нет:
Отправить комментарий