Cannot read properties of undefined (reading 'classList')

Делаю проект по парадигме ООП, не могу понять почему не находит и не добавляет класс для того чтобы модальное окно стало видимым, выдает такую ошибку вот в этом фрагменте кода

openPopup() {
    this._selectedPopup.classList.add('popup_opened');
    document.addEventListener('keydown', this._handleEscKey);
  };

Uncaught TypeError: Cannot read properties of undefined (reading 'classList')

class Popup {
  constructor (selectorPopup) {
    this._selectorPopup = document.querySelector(selectorPopup);
  };
/* Открытие модального окна */
  openPopup() {
    this._selectedPopup.classList.add('popup_opened');
    document.addEventListener('keydown', this._handleEscKey);
  };
/* Закрытие модального окна */
  closePopup() {
    this._selectorPopup.classList.remove('popup_opened');
    document.removeEventListener('keyup', this._handleEscKey);
  };
/* Закрытие модального окна кнопкой 'Escape' */
  _handleEscKey() {
    if (evt.key = 'Escape') {
      this.closePopup;
    };
  };
/* Постановка слушателей для закрытия модального окна по клику на "Overlay" и крестик */
  setEventListeners() {
    this._selectorPopup.addEventListener('click', () => {
      if (evt.target.classList.contains('popup_opened')) {
        this.closePopup;
      };
      if (evt.target.classList.contains('popup__close-icon')) {
        this.closePopup;
      };
    });
  };
};
class PopupWithForm extends Popup {
  constructor (selectorPopup) {
    super(selectorPopup);
    //this._handleFormSubmit = handleFormSubmit;
  };
/* Получение значений из полей ввода */
  _getInputValues() {
    this._inputList = this._selectorPopup.querySelectorAll('.popup__input');
    this._newInputValues = {};
    this._inputList.forEach((inputElement) => {
      this._newInputValues = inputElement.value
    });
    console.log(this._newInputValues);
  };
/* Сброс значений полей ввода */
  resetForm() {
    this._selectorPopup.reset();
  };
/* Добавление сброса формы в родительский метод закрытия модального окна*/
  closePopup() {
    super.closePopup();
    resetForm();
  };
/* Установка слушателей */
  setEventListeners() {
    super.setEventListeners();
    this._formSelector = this._selectorPopup.querySelector('.popup__input-container');
    this._formSelector.addEventListener('submit', (event) => {
      event.preventDefault()
    });
    //this._handleFormSubmit(this._getInputValues());
    }
};

Ответы (1 шт):

Автор решения: EzioMercer

Мне кажется проблема не там где вы указали, а тут:

setEventListeners() {
    this._selectorPopup.addEventListener('click', () => {
      if (evt.target.classList.contains('popup_opened')) {
        this.closePopup;
      };
      if (evt.target.classList.contains('popup__close-icon')) {
        this.closePopup;
      };
    });
  };

Вы в addEventListener в стрелочной функции не передаёте как аргумент evt, потому он и не знает что такое evt.target и считает его за undefined и соответвенно ругается, что у undefined не может найти classList

→ Ссылка