Как работает конструктор наследования? Наткнулся на пример наследования через конструктор. И никак не могу понять, для чего нужна данная строка Square.prototype.constructor = Square; По заверению автора, она просто необходима.
Поясните пожалуйста, зачем здесь перезаписывается constructor прототипа Square?
Код замечательно работает и без этого фрагмента.function Rectangle(length, width) {
this.length = length;
this.width = width;
}
Rectangle.prototype.getArea = function() {
return this.length * this.width;
};
Rectangle.prototype.toString = function() {
return "[Rectangle " + this.length + "x" + this.width + "]";
};
// inherits from Rectangle
v function Square(size) {
this.length = size;
this.width = size;
}
Square.prototype = new Rectangle();
Square.prototype.constructor = Square;
Square.prototype.toString = function() {
return "[Square " + this.length + "x" + this.width + "]";
};
var rect = new Rectangle(5, 10);
var square = new Square(6);

21 Авг 2019 в 07:06
164 +1
0
Ответы
1

В данном примере, строка Square.prototype.constructor = Square; используется для того, чтобы правильно настроить прототипное наследование.

Когда вы задаете Square.prototype = new Rectangle();, вы создаете новый объект Rectangle и устанавливаете его как прототип для Square. В этом случае, конструктором этого нового объекта будет Rectangle, так как он создан на основе этого конструктора.

Чтобы исправить это и установить правильный конструктор для Square, мы перезаписываем Square.prototype.constructor на Square. Это нужно для того, чтобы при создании новых объектов через конструктор Square, правильно указывался конструктор Square.

Итак, эта строка нужна для корректной работы наследования и указания правильного конструктора при создании новых объектов через конструктор Square.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 913 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир