Natknąłem się w pozornie znanym źródle na dziwną manipulację datami, której nie rozumiem. Jest to część próbek w dokumentacji dla popularnego ramach UI:JavaScript dziwne manipulowanie datami
var startDate = start.value(); // returns Date object
startDate = new Date(startDate);
startDate.setDate(startDate.getDate());
Teraz linia po linii var startDate = start.value();
to linie zwraca obiekt Date i zapisuje je w startDate
zmiennej. W porządku, nie ma problemu.
Następnie tworzymy nowy obiekt Date o tej samej wartości i przypisujemy go do tej samej zmiennej (lekko mylące, ale mogę z tym żyć).
Trzecia linia to prawdziwa zagadka - otrzymujemy dzień miesiąca (poprzez getDate
) i przypisujemy go jako dzień miesiąca (poprzez setDate
) w tej samej zmiennej.
Teraz pytanie: czy jest to zły kod, ewentualnie resztki z niedokończonego refaktoryzacji? Czy to naprawdę ma sens i robi pewne manipulacje, takie jak usuwanie czasu (nie wygląda na to)? Jeśli tak, to co robi?
UPD: przykładowy kod tutaj http://demos.telerik.com/kendo-ui/datepicker/rangeselection
Czy jest to starszy kod dla określonej przeglądarki? Poza tą opcją nie mogę wymyślić żadnego powodu, by to zrobić. – Nit
@Nit kodu przykładowego - nic o starszych wersjach lub przeglądarkach. – trailmax
Pojawia się (przynajmniej po uruchomieniu w konsoli Chrome), aby utworzyć wiele nowych obiektów daty. Jeśli nie ma określonego celu, ten kod jest w rzeczywistości dość nieefektywny. –