ООП javascript зачем нужна эта строчка? Объясните, пожалуйста, зачем в этой функцииfunction extend(Child, Parent) {
var F = function() { }
F.prototype = Parent.prototype
Child.prototype = new F()
Child.prototype.constructor = Child
Child.superclass = Parent.prototype
}
F.prototype = Parent.prototype?
Почему не делается F.prototype = Parent? Я же хочу, чтобы мои предком был Parent, а не его предок?

21 Авг 2019 в 07:03
203 +1
0
Ответы
1

В данном случае строка "F.prototype = Parent.prototype" используется для того, чтобы объект, созданный с помощью функции-конструктора F, унаследовал методы и свойства, которые были определены в прототипе родителя (Parent).

Если мы просто написали бы "F.prototype = Parent", то это не дало бы желаемого эффекта наследования, так как в таком случае F.prototype просто станет ссылаться на объект Parent, а не на его прототип.

Путем присваивания значения F.prototype = Parent.prototype мы фактически указываем, что прототип объекта, созданного с помощью функции F, будет совпадать с прототипом объекта Parent.prototype, что позволяет дочернему объекту (Child) наследовать методы и свойства родителя (Parent). Если мы напишем "F.prototype = Parent", то это приведет к неправильному наследованию и ошибкам в работе программы.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир