为什么新的Date()是一个字符串值?

use*_*697 1 javascript object

通常,当我调用new关键字时,它绝对会输出一个对象.例如:

function Time(){
    this.now = new Date();
}
console.log(new Time());
//{now : 'Tue Aug 26 2014 01:52:15 GMT+0700 (SE Asia Standard Time)'}
Run Code Online (Sandbox Code Playgroud)

怎么可以new Date()是一个字符串值?

Jer*_*her 7

简短回答:

事实并非如此.

在您的控制台类型中:

typeof new Date()
Run Code Online (Sandbox Code Playgroud)

它正确返回的地方 "object"

但是,作为一个方法返回的对象toString()将返回...一个字符串.

var date = new Date();
console.log(typeof date)
console.log(date.toString())


object
Mon Aug 25 2014 14:58:28 GMT-0400 (Eastern Daylight Time) 
Run Code Online (Sandbox Code Playgroud)

编辑:在JavaScript API的一个奇怪的转折,typeof Date()确实返回"string".请注意缺少的new关键字.