Что делают данные строки кода в задаче? Здравствуйте! Помогите пожалуйста понять код Задание (взято из учебника): Переопределите метод disable холодильника, чтобы при наличии в нём еды он выдавал ошибку. Объясните пожалуйста значение этих строк кода в задаче В честности 1) Играет ли какую-то роль в конструкторе Machine этот код ? this.disable = function() { self._enabled = false; }; 2) Для чего нужен var parentDisable = this.disable; и его вызов parentDisable();function Machine(power) { this._power = power; this._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 < arguments.length; i++) { food.push(arguments[i]); // добавить всё из arguments }
};
this.getFood = function() { // копируем еду в новый массив, чтобы манипуляции с ним не меняли food return food.slice(); };
1) В данном коде в конструкторе Machine метод disable переопределяется для холодильника. Вместо простого выключения холодильника, теперь он проверяет наличие еды в нем и выдает ошибку, если она есть.
2) Строка var parentDisable = this.disable; сохраняет оригинальный метод disable объекта Fridge (родительского класса), чтобы потом его можно было вызвать в переопределенном методе disable для проверки наличия еды. Вызов parentDisable(); внутри переопределенного метода позволяет сначала выполнить оригинальную функциональность disable, а затем добавить свою логику проверки на наличие еды.
1) В данном коде в конструкторе Machine метод disable переопределяется для холодильника. Вместо простого выключения холодильника, теперь он проверяет наличие еды в нем и выдает ошибку, если она есть.
2) Строка var parentDisable = this.disable; сохраняет оригинальный метод disable объекта Fridge (родительского класса), чтобы потом его можно было вызвать в переопределенном методе disable для проверки наличия еды. Вызов parentDisable(); внутри переопределенного метода позволяет сначала выполнить оригинальную функциональность disable, а затем добавить свою логику проверки на наличие еды.