Как правильно получить ноду текущего инпута в методе класса и передать в другой метод?

Внутри конструктора вешается обработчик событий на input который при срабатывании вызывает метод check внутри которого должен вызываться метод isValid(this) который в свою очередь должен вернуть ноду текущего input, но вместо этого мне возвращает весь мой класс myClass. Как правильно получить текущий input?

class myClass {
  constructor(setting) {
    let formEl = document.getElementById(setting.id);
    let formFields = formEl.elements;
    for (let i = 0; i < formFields.length; i++) {
      formFields[i].addEventListener("change", this.check.bind(this);
    } 
   }

  isValid(el){
   console.log(el)
  }
  check(){
    this.isValid(this)
  }
}

Полный пример кода https://codesandbox.io/s/sleepy-moon-m9kr6?file=/src/index.js


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

Автор решения: Igor
  check(evt) {
    this.isValid(evt.target);
  }
→ Ссылка
Автор решения: Vyacheslav Odinokov

formFields[i].addEventListener("change", this.checkIt(formFields[i]));

В функции ты используешь this - это не элемент input, это контекст объекта класса.

Передавай в функцию элемент input в аргументе.

  isValid(elem) {
    console.log(elem);
    return true;
  }

  checkIt(elem) {
    this.isValid(elem);
    console.log(elem);
  }

И bind делать не надо. Контекст объекта у тебя не меняется.

→ Ссылка