Есть input type="date" при его изменении вычисляется значение, как это значение передать дочернему классу. Читал справку, там передаются параметры, а если я вычисляю свойство, то как мне его потом получить в дочернем классе, чтобы дальше производить с ним следующие операции
<body>
<div class="input">
<input type='date' />
</div>
<div class="containerForLastUpdateRecordAndPeriodItems"></div>
<script>
class dateInput {
constructor() {
this.input = document.querySelector("input[type='date']");
this.input.onchange = this.onChange;
}
onChange(event) {
this.inputValue = event.target.value;
console.log('В датаИмпуте', this.inputValue)
this.updateTime = new Date();
console.log('В updateTime', this.updateTime)
return this.inputValue;
}
}
class dateRange extends dateInput {
constructor() {
super();
this.container = document.querySelector('.containerForLastUpdateRecordAndPeriodItems');
}
onChange() {
console.log(this.inputValue);
this.createPeriod(this.inputValue);
}
createPeriod(date) {
let newDate = date;
console.log(newDate);
newDate.year = newDate.year + 1;
return {
start: date,
end: newDate
}
}
}
const range = new dateRange();
</script>
</body>
В вашем случае вы полностью перезаписываете метод, не используя метод родительского класса.
Вам нужно воспользоваться зарезервированным словом super
class dateInput {
constructor() {
this.input = document.querySelector("input[type='date']");
this.input.onchange = this.onChange.bind(this); // иначе потереяте контекст
}
onChange(event) {
this.inputValue = new Date(event.target.value);
console.log('В датаИнпуте', this.inputValue)
this.updateTime = new Date();
console.log('В updateTime', this.updateTime)
}
}
class dateRange extends dateInput {
constructor() {
super();
this.container = document.querySelector('.containerForLastUpdateRecordAndPeriodItems');
}
onChange(event) {
super.onChange(event); // вызываем метод родительского класса
console.log(this.inputValue); // this.inputValue уже доступен
const result = this.createPeriod();
console.log(result);
}
createPeriod() {
let newDate = this.inputValue; // не обязательно передавать параметры
newDate.setYear(+newDate.getFullYear() + 1); // это делается так
console.log(newDate);
return {
start: this.inputValue,
end: newDate
}
}
}
const range = new dateRange();
<body>
<div class="input">
<input type='date' />
</div>
<div class="containerForLastUpdateRecordAndPeriodItems"></div>
</body>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветРешил разобраться в написании расширений для браузера, поискал в интернете, но немного не понял, как работать с контент-скриптом
Имеется клиентская часть на JS и серверная flaskЗапросы с клиента уходят, приходят на сервер
Для сайта нужно сделать свою кнопку "Поделиться" в различных социальных сетяхКак отследить, пользователь действительно поделился записью...
Есть много отдельных почти уникальных страниц сайта со своей файловой структурой и сборкой, но в них используется шаблон шапки, который лежит...