Хочу создать класс, который принимает параметрами год, месяц, день , но спотыкаюсь на методе получения года. Как исправить или лучше организовать?

Рейтинг: -1Ответов: 1Опубликовано: 22.07.2023
class Zate {
  constructor(dy, dm, dd) {
    let Y = new Date();
    this.Y = Y.setFullYear(dy);
    let M = new Date();
    this.M = M.setMonth(dm);
    let D = new Date();
    this.D = D.setDate(dd);
  }

  getYear() {
    return this.Y.getFullYear(); /// (1000 * 3600 * 24 * 365);
  }
}

const zate1 = new Zate(2025, 6, 21);
console.log(zate1.getYear());

//TypeError: this.Y.getFullYear is not a function

Ответы

▲ 0Принят

Присвойте this.Y = Y, а потом вызывайте метод setFullYear

class Zate {
  constructor(dy, dm, dd) {
    let Y = new Date();
    this.Y = Y;
    this.Y.setFullYear(dy)
    let M = new Date();
    this.M = M;
    this.M.setMonth(dm);
    let D = new Date();
    this.D = D;
    this.D.setDate(dd);
  }

  getYear() {
    return this.Y.getFullYear();
  }
}

const zate1 = new Zate(2025, 6, 21);
console.log(zate1.getYear());