Jest rok 2017 i miałem na myśli to samo pytanie. Co znalazłem jako odpowiedź po pewnym przeczytaniu:
"Najprostszym sposobem wykonania konwersji typu jawnego jest użycie funkcji Boolean(), Number(), String() lub Object(). widziałem te funkcje jako konstruktorów obiektów opakowujących, ale gdy są wywoływane bez nowego operatora, działają jako funkcje konwersji i konwersje typu. "
" Wbudowane klasy rdzenia JavaScript próbują konwersji valueOf() przed Konwersja toString(), z wyjątkiem klasy Date, , która wykonuje konwersję toString(). "
Tak Data() wywoływana bez nowego słowa kluczowego wykonuje konwersję typu. A ponieważ Date jest obiektem i obiekt powinien być ustawiony, obiekty date domyślnie wywołują metodęString() (chociaż Date ma również sensowną metodę valueOf()).
Znaleziono to w książce "JavaScript: The Definitive Guide". Pozostawiając go tutaj dla przyszłych pokoleń, którzy dopiero zaczęli się uczyć JS :)
Najlepsza odpowiedź na razie: –
każdy pseudokod kodu jak zaimplementowano funkcję Date(), aby mogła działać zarówno jako konstruktor, jak i zwykła funkcja? dzięki – Benny
@Benny przestrzegaj następujących zasad: 'function Test() { var private =" wartość prywatna "; this.public = "wartość publiczna"; "Zwróć wartość" return; } ' Wywołanie" new Test() "tworzy obiekt z wartościami prywatnymi i publicznymi. Wywołanie 'Test()' zwraca ciąg znaków. – musicin3d