@Richswitch
junior

Как получить аргументы Parent в Child class?

Привет!
Пытаюсь вызвать метод 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) - правильно ли я понимаю работу этой строчки я уже сомневаюсь, потому что она мне не помогла.
  • Вопрос задан
  • 376 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vsnegovik
@Vsnegovik
frontend-разработчик
class Slider {
    constructor() {
        console.log('Slider')
    }
    index() {
        console.log('index')
    }
}

class Events extends Slider {
    constructor() {
		super()
        console.log('Events')
    }
}
var events = new Events()
events.index()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект