Я понимаю разницу в поведении. Date()
возвращает строку, представляющую текущую дату, и new Date()
возвращает экземпляр объекта Date, методы которого я могу вызвать.
Но я не знаю, почему. JavaScript прототипирован, поэтому Date
- это функция и объект, который имеет функции-члены (методы), которые также являются объектами. Но я не написал или не прочитал какой-либо JavaScript, который ведет себя таким образом, и я хотел бы понять разницу.
Может кто-нибудь показать мне пример кода функции, которая имеет метод, возвращает экземпляр с новым оператором и выводит строку при вызове напрямую? например, как это происходит?
Date(); // returns "Fri Aug 27 2010 12:45:39 GMT-0700 (PDT)"
new Date(); // returns Object
new Date().getFullYear(); // returns 2010
Date().getFullYear(); // throws exception!
Очень конкретный запрос, я знаю. Надеюсь, что это хорошо.:)