Zapis w języku JavaScript ma za zadanie
var teraz = new Date();
A. założenie nowej klasy teraz
B. zainicjowanie zmiennej teraz oraz wywołanie funkcji, której argumentem jest teraz
C. utworzenie obiektu teraz klasy Date, przechowującego bieżącą datę i godzinę
D. wykonanie metody obiektu Date
Instrukcja var teraz = new Date(); tworzy zmienną o nazwie teraz i przypisuje do niej nowy obiekt wbudowanego typu Date. Słowo new oznacza tutaj wywołanie konstruktora, czyli specjalnego mechanizmu tworzącego nową instancję obiektu. Ponieważ nawiasy Date() są puste, JavaScript pobiera aktualną datę i godzinę z systemu w momencie wykonania tej linijki. W praktyce taki obiekt można potem wykorzystać np. do wyświetlenia bieżącego roku przez teraz.getFullYear(), zapisania czasu utworzenia wpisu, porównania dat albo obliczenia, ile czasu minęło od jakiegoś zdarzenia. Z mojego doświadczenia to jedna z tych konstrukcji, które warto dobrze rozumieć, bo pojawia się często w formularzach, logach, systemach rezerwacji czy licznikach czasu. W nowoczesnym JavaScript częściej napisałoby się const teraz = new Date();, bo zmienna zwykle nie musi być ponownie przypisywana. Sam mechanizm pozostaje jednak ten sam i jest zgodny ze standardem ECMAScript. Trzeba też pamiętać, że Date przechowuje czas wewnętrznie jako liczbę milisekund od epoki Unix, a przy wyświetlaniu może uwzględniać lokalną strefę czasową, co czasem potrafi lekko namieszać.
W tym zapisie łatwo pomylić kilka pojęć, bo w JavaScript funkcje, konstruktory i obiekty są dość blisko ze sobą związane. Fragment var teraz = new Date(); nie oznacza jednak wywołania funkcji, której argumentem jest teraz. Zmienna teraz znajduje się po lewej stronie operatora przypisania, więc dopiero otrzymuje wartość. Nie jest przekazywana do Date jako parametr. Gdybyśmy chcieli przekazać argument, wyglądałoby to raczej tak: new Date(2025, 0, 1) albo new Date('2025-01-01'), choć zapis z tekstową datą też trzeba stosować ostrożnie przez różnice stref czasowych. Nie jest to również wykonanie metody obiektu Date. Metoda to operacja wykonywana na już istniejącym obiekcie, na przykład teraz.getMonth() albo teraz.toISOString(). Tutaj Date pełni rolę konstruktora, czyli tworzy nowy obiekt. Różnica niby drobna, ale w programowaniu obiektowym bardzo ważna. Ten kod nie zakłada też nowej klasy o nazwie teraz. Klasy w JavaScript definiuje się słowem class, a nie przez var. Nazwa teraz jest po prostu identyfikatorem zmiennej, która wskazuje na utworzony obiekt daty. Typowy błąd myślowy bierze się stąd, że ktoś widzi nawiasy i od razu myśli funkcja, albo widzi nazwę po var i myśli definicja typu. Warto patrzeć na całą składnię: new + Date() oznacza konstruktor, a operator = przypisuje wynik do zmiennej.