date1 присваиваю текущее время. Потом date2 присваиваю date1 и добавляю 1 год, почему date1 при этом тоже увеличивается на 1 год? Связано ли это с тем, что обеим переменным присваивается одна и та же ссылка на new Date() и любые манипуляции будут менять дату в одном и том же месте.
Как это обойти, если нужно допустим организовать период с интервалом в 1 год?
var date1 = new Date();
console.log('Дата 1', date1);
var date2 = date1
console.log('Дата 2', date2)
date2.setFullYear(Number(date2.getFullYear() + 1));
console.log('Дата 2 после прибавления 1 года', date2)
console.log('Дата 1 ', date1)
Да, связано с этим.
var date1 = new Date();
console.log('Дата 1', date1);
var date2 = new Date(date1); // !!!
console.log('Дата 2', date2);
date2.setFullYear(Number(date2.getFullYear() + 1));
console.log('Дата 2 после прибавления 1 года', date2);
console.log('Дата 1 ', date1);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники