Приветствую!
В качестве тренировки, написал 2 конструктора с наследованием второго от первого. При попытке получить доступ к свойствам конструктора 1 из конструктора 2 - получаю `undefined`.
Как правильно взаимодействовать со свойствами из другого конструктора?
// конструктор 1
function Construct1() {
// свойства
this.constructor1 = 'Construct 1';
this.property1 = 'property 1';
}
// метод 1
Construct1.prototype.method1 = function() {
return `${this.constructor1} -> method 1 -> ${this.property1}`;
}
let construct1 = new Construct1();
// проверка метода 1
console.log(construct1.method1()); // 'Construct 1 -> method 1 -> property 1'
// конструктор 2
function Construct2() {
// свойства
this.constructor2 = 'Construct 2';
this.property2 = 'property 2';
}
// наследование конструктора 2 от конструктора 1
Construct2.prototype = Object.create(Construct1.prototype);
Construct2.prototype.constructor = Construct2;
// метод 2
Construct1.prototype.method2 = function() {
return `${this.constructor2} -> method 2 -> ${this.property2}`;
}
// метод 3 с наследованием метода 1
Construct1.prototype.method3 = function() {
return this.method1();
}
let construct2 = new Construct2();
// проверка метода 2 и 3
console.log(construct2.method2()); // 'Construct 2 -> method 2 -> property 2'
console.log(construct2.method3()); // 'undefined -> method 1 -> undefined'