На данный вопрос уже ответили:
class dateInput {
constructor() {
this.input = document.querySelector(".input");
/* присваивает передаваемому в конструктор объекту .input?? =
выбирает первый элемент с классом .input в документе*/
this.input.onChange = this.onChange;
}
onChange(event) {
this.inputValue = event.srcElement.value;
this.updateTime = new Date();
return this.inputValue;
}
}
Хотел узнать, как работает код выше, разобрался, но пока не совсем точно, в коде есть мои комментарии, вот мои вопросы:
не знаю, как работает первый this.input, передаёт объекту, для которого используется конструктор что?
при изменении объекта делает что? тоже не понимаю
функцию onChange не понимаю всю
задавая этот вопрос понял, что не могу найти нигде понятного мне применения или объяснения применения методов типа input и onchange
class dateInput {
constructor() {
/* выбирает первый элемент с классом .input в документе */
this.input = document.querySelector(".input");
this.input.onchange = this.onChange.bind(this); // not this.input.onChange
}
onChange(event) {
// теперь (после добавления .bind(this) в конструкторе) this здесь -
// объект типа dateInput, чей метод используется в качестве обработчика
this.inputValue = event.srcElement.value;
this.updateTime = new Date();
//return this.inputValue; - meaningless
console.log(this);
}
}
var a = new dateInput();
console.log(a);
<input class="input" />
Конструктор
передает начальные значения для переменных класса. В этом коде не хватает инициализации переменной input
input
срабатывает функция onChange()
, причем не стандартная, а та, которая прописана внутри класса, а делает она вот что:
inputValue
(которую, кстати, тоже нужно предварительно инициализировать) записывается текущий event.targetupdateTime
(и ее нужно проинициализировать) записывается текущее время
inputValue
input
- это не метод, а Node-объект. Конкретно этот код и мне не понятен, для чего может пригодиться, но вообще подобные конструкции применяются для создания api
к каким-нибудь библиотекам, чтобы иметь возможность манипулировать состоянием работы библиотеки на основании пользовательских событий или событий работы библиотеки.Виртуальный выделенный сервер (VDS) становится отличным выбором
Например, есть значение AgeКак сделать чтобы в его столбце число не могло быть меньше 0?
Дана таблица с контрактами, необходимо для каждого contractid просуммировать задолженность в таблице invoiceT