挙動の違いが分かります。Date()
現在の日付を表す文字列をnew Date()
返し、呼び出し可能なメソッドを持つ Date オブジェクトのインスタンスを返します。
しかし、理由はわかりません。JavaScript はプロトタイプ化されているため、オブジェクトでもあるメンバー関数 (メソッド) を持つDate
関数とオブジェクトがプロトタイプ化されています。しかし、私はこのように動作する JavaScript を書いたり読んだりしたことがないので、違いを理解したいと思っています。
メソッドを持ち、new 演算子でインスタンスを返し、直接呼び出されたときに String を出力する関数のサンプル コードを誰かに見せてもらえますか? つまり、このようなことがどのように起こるのでしょうか?
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!
非常に具体的な要求、私は知っています。それが良いことであることを願っています。:)