Я наткнулся на, казалось бы, авторитетный источник странных манипуляций с датами, которые я не понимаю. Это часть образцов в сопроводительной документации для популярных рамках пользовательского интерфейса:Javascript странная манипуляция датами
var startDate = start.value(); // returns Date object
startDate = new Date(startDate);
startDate.setDate(startDate.getDate());
Теперь построчно var startDate = start.value();
эти строки возвращает объект Date и сохраняет его в startDate
переменной. Отлично, не проблема.
Затем мы создаем новый объект Date с тем же значением и присваиваем его той же переменной (слегка запутанной, но я могу жить с ней).
Третья строка - настоящая головоломка - мы получаем день месяца (через getDate
) и назначаем его как день месяца (через setDate
) в той же переменной.
Теперь вопрос: это плохой код, возможно, остатки от незавершенного рефакторинга? Или это действительно имеет смысл, и он делает некоторые манипуляции, как удаление времени (не похоже на это)? Если да, то что он делает?
UPD: образец кода здесь http://demos.telerik.com/kendo-ui/datepicker/rangeselection
Этот код устаревшего для определенного браузера? Помимо этого варианта я не могу придумать никаких возможных причин для этого. – Nit
@Nit code sample - ничего о наследии или браузерах – trailmax
Появляется (по крайней мере, когда я запускаю его в консоли Chrome) для создания нескольких новых объектов даты. Если нет конкретной цели, то этот код на самом деле довольно неэффективен. –