var d1 = new Date();
var d2 = d1; // так не клонируется
d1.setMonth(d2.getMonth()+1); // меняем месяц в d1 - поменяется ли
// при этом d2?
alert(d2-d1); // ноль, потому что меняя d1, меняем и d2
d2 = new Date(d1.getTime()); // клонируем
d1.setMonth(d2.getMonth()+1);
alert(d2-d1); // не ноль - клонирование прошло успешно
Кстати, клонировать любой объект в JS можно так (понятно, что имеется в виду «клонировать данные объекта», то есть фактически клонировать JSON структуру с данными, методы объекта, если они есть, при этом не будут клонированы, то есть такой метод не подойдёт для клонирования дат):
// клонируем объект cloningObject
var newObject = JSON.parse(JSON.stringify(cloningObject));
Комментариев нет:
Отправить комментарий