@Evtera

Почему не получается расширить класс JS?

Здравствуйте. Есть следующий класс.

class Select {
  constructor(el) {
    if (typeof el === "string") {
      el = document.querySelectorAll(el);
    }

    if (typeof el[Symbol.iterator] === "function") {
      return [...el].map((n) => new Select(n));
    }

    this.$select = el;
 }
}

const select = new Select(".select");


Я хочу использовать методы класса а так же this.$el в другом классе, чтобы расширить всю эту функцию.
Пишу следующее, но не выходит

class Checkboxes extends Select {
  constructor(props) {
    super(props);
  }

  voice() {
    console.log("Asd");
  }
}

const checkboxes = new Checkboxes(".selectCheckboxes__line");


Что я делаю не так?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
return [...el].map((n) => new Select(n));

Здесь всегда возвращается массив экземпляров базового класса.
А надо текущего - замените Select на this.constructor.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы