Привет!
Пытаюсь вызвать метод
index()
родительского класса
Slider
для ребенка
Events
с помощью
new Events().index()
Естественно, чтобы код работал корректно нужно указать контекст вот так
new Events(slider).index()
.
Но мне интересно узнать вариант с наследованием аргументов, если такое возможно.
Насколько я понимаю нужно получить
constructor
родительского класса
Slider
в ребенке
Events
, поэтому я использую
super
для наследования свойств конструктора, но это не работает потому что контекст
this
вызывается до
super
.
Вот код:
'use strict';
const area = document.querySelector('.vertical-slider'),
slider = document.querySelectorAll(".slider-item"),
sliderStage = document.querySelector('.slider-stage');
let curItem, sliStage, heightItem, distanceEl, marginItem, num, thisItem;
class Slider {
constructor(slides, startIndex = 0) {
this._slides = slides;
this._currentSlideIndex = startIndex;
}
index() {
const indexItem = this._slides[this._currentSlideIndex++];
console.log(indexItem);
}
}
class Events extends Slider {
constructor() {
super.constructor();
}
}
const sliderInit = new Slider(slider);
const events = new Events();
events.index();
В старом стиле с прототипами можно было делать в классе Events так Slider.apply(this, arguments) - правильно ли я понимаю работу этой строчки я уже сомневаюсь, потому что она мне не помогла.