JS властивість Date.prototype


Загальний опис

Date.prototype - це прототип для всіх об'єктів дати в JavaScript, який містить методи та властивості, спільні для всіх дат. Ця властивість дозволяє розширювати базовий об'єкт дати, додаючи нові методи або змінюючи існуючі.

Прототипи використовуються для делегування властивостей та методів від одного об'єкта до іншого. Зокрема, коли створюється новий екземпляр об'єкта дати (через конструктор Date), цей об'єкт автоматично наслідує всі властивості та методи від Date.prototype.

Наприклад:

let today = new Date();
console.log(today.getFullYear()); // Повертає поточний рік, наприклад, 2023.

У цьому прикладі, метод getFullYear() насправді знаходиться у Date.prototype, а не в самому об'єкті today. Проте, завдяки механізму прототипів, об'єкт today може використовувати цей метод так, ніби він його власний.

Ви можете додавати власні методи до Date.prototype, щоб робити з датами щось специфічне для вашого застосунку.

Date.prototype.dayOfYear = function() {
    let start = new Date(this.getFullYear(), 0, 0);
    let difference = this - start;
    let oneDay = 1000 * 60 * 60 * 24;
    return Math.floor(difference / oneDay);
};

let myDate = new Date();
console.log(myDate.dayOfYear()); // Повертає номер дня в році.

Хоча можливо додавати власні методи до прототипів вбудованих конструкторів, рекомендується робити це обережно. Зміна базових прототипів може призвести до непередбачуваних наслідків, особливо якщо інші частини вашого коду (або сторонні бібліотеки) очікують стандартну поведінку.

автор: Bond

Порада

Рекомендується докладно вивчити всі методи Date.prototype. Це дозволить оптимізувати роботу з датами, зробити код більш ефективним і читабельним, а також використовувати менш відомі, але корисні методи для специфічних задач.

автор: Bond
Порада

Для більш досвідчених програмістів це може здатися очевидним, але завжди переконайтеся, що об'єкт, з яким ви працюєте, є екземпляром Date, перш ніж використовувати специфічні для нього методи. Це може допомогти уникнути помилок у виконанні.

if (object instanceof Date) {
    console.log(object.getFullYear());
}
автор: Bond
Нотатка

Хоча JavaScript дозволяє вам модифікувати Date.prototype, вам слід бути дуже обережними. Додавання або зміна методів у Date.prototype може спричинити конфлікти або непередбачувані результати, якщо ваш код буде взаємодіяти з іншими бібліотеками чи фреймворками.

автор: Bond

Синтаксис

Date.prototype

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми створюємо новий об'єкт date, використовуючи конструктор Date(). Цей об'єкт за замовчуванням представляє поточний час і дату. Після цього ми використовуємо метод getFullYear(), щоб отримати поточний рік з об'єкта date і вивести його в консоль.

// Створюємо новий об'єкт дати
let date = new Date();

// Виводимо поточний рік
console.log("Поточний рік:", date.getFullYear());
автор: Bond

У другому прикладі ми спочатку створюємо функцію isLeapYear, яка визначає, чи є конкретний рік високосним. Вона повертає true для високосних років та false для не високосних. Наступно, ми створюємо дату за допомогою конструктора Date із рядковим аргументом. Використовуючи метод getFullYear(), ми отримуємо рік цієї дати і перевіряємо його за допомогою нашої функції isLeapYear. Результат перевірки виводиться в консоль.

// Функція для перевірки, чи є рік високосним
function isLeapYear(year) {
    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}

// Створюємо дату
let someDate = new Date('2023-06-15');

// Визначаємо рік цієї дати
let year = someDate.getFullYear();

// Перевіряємо, чи є цей рік високосним
if (isLeapYear(year)) {
    console.log(year + " - високосний рік");
} else {
    console.log(year + " - не високосний рік");
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід