Всем хорошего дня, есть вопрос с учебника Ильи, перейдите по ссылке посмотреть пример кода в разделе "переопределения метода"
https://learn.javascript.ru/functional-inheritance
В этом разделе “переопределения метода” приводится пример через сохранение
метода класса
var parentEnable = this.enable;
// строка 26
В результате имеем такой код
function Machine(power) {
...
var self = this;
this.enable = function() { //*1
self._enabled = true;
};
...
}
function CoffeeMachine(power) {
Machine.apply(this, arguments);
var parentEnable = this.enable; //*2 этот this.enable якобы из класса Machine
this.enable = function() { // *3
parentEnable();
this.run();
}
...
}
Я понимаю как используется
parentEnable //*2
в функции
this.enable = function() { ... // *3
но разве в момент выполнения
this.enable = function() { // *3
parentEnable(); //*2
Но разве в выполнении этой функции ссылка
parentEnable() //*2
не будет ссылаться на новое значение
this.enable = function() { //*3
т. к. она переопределена
Не могу понять почему
parentEnable() //*2
ссылается на
this.enable = function() { //*1
из конструктора
Machine
?
Тот кто понимает, объясните пожалуйста как работает код.