Что делают данные строки кода в задаче? Здравствуйте! Помогите пожалуйста понять код
Задание (взято из учебника):
Переопределите метод disable холодильника, чтобы при наличии в нём еды он выдавал ошибку.
Объясните пожалуйста значение этих строк кода в задаче
В честности
1)
Играет ли какую-то роль в конструкторе Machine этот код ?
this.disable = function() {
self._enabled = false;
};
2)
Для чего нужен var parentDisable = this.disable; и его вызов parentDisable();function Machine(power) {
this._power = power;
this._enabled = false;

var self = this;

this.enable = function() {
self._enabled = true;
};

this.disable = function() {
self._enabled = false;
};
}

function Fridge(power) {
Machine.apply(this, arguments);

var food = []; // приватное свойство food

this.addFood = function() {
if (!this._enabled) {
throw new Error("Холодильник выключен");
}
if (food.length + arguments.length >= this._power / 100) {
throw new Error("Нельзя добавить, не хватает мощности");
}
for (var i = 0; i

21 Авг 2019 в 07:00
192 +1
1
Ответы
1

1) В данном коде в конструкторе Machine метод disable переопределяется для холодильника. Вместо простого выключения холодильника, теперь он проверяет наличие еды в нем и выдает ошибку, если она есть.

2) Строка var parentDisable = this.disable; сохраняет оригинальный метод disable объекта Fridge (родительского класса), чтобы потом его можно было вызвать в переопределенном методе disable для проверки наличия еды. Вызов parentDisable(); внутри переопределенного метода позволяет сначала выполнить оригинальную функциональность disable, а затем добавить свою логику проверки на наличие еды.

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