Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为构造函数实例化的对象添加默认返回语句?_Javascript_Date - Fatal编程技术网

Javascript 如何为构造函数实例化的对象添加默认返回语句?

Javascript 如何为构造函数实例化的对象添加默认返回语句?,javascript,date,Javascript,Date,考虑JavaScript的日期构造函数如何创建一个对象,该对象在直接引用时返回默认字符串: var-date=新日期(); 文件。写(日期);//输出字符串:2016年5月23日星期一08:48:14 GMT-0400(美国东部时间) //预期输出:[对象] document.write(“”,date.getFullYear());//可以按预期调用方法。 document.write(“”,date.toString()) 我不寻求在控制台中为对象指定字符串格式的帮助 但这就是你看到的行为

考虑JavaScript的日期构造函数如何创建一个对象,该对象在直接引用时返回默认字符串:

var-date=新日期();
文件。写(日期);//输出字符串:2016年5月23日星期一08:48:14 GMT-0400(美国东部时间)
//预期输出:[对象]
document.write(“
”,date.getFullYear());//可以按预期调用方法。 document.write(“
”,date.toString()) 我不寻求在控制台中为对象指定字符串格式的帮助

但这就是你看到的行为。没有“对象的默认返回语句”

考虑JavaScript的日期构造函数如何创建一个对象,当直接引用时,该对象返回默认字符串

没有。它只是创建了一个对象。可能是一个特殊的本机
Date
对象,但与“默认字符串”无关。
实际上,只有控制台(
console.log
)才能格式化这些本机
Date
实例


对于任意对象,您自己无法做到这一点,您所要求的是不可能的。

可能重复@mdickin我不寻求在控制台中为对象指定格式的帮助。我想了解如何为构造函数实例化的对象添加默认返回语句。@gfullam
new Date()
不返回字符串,它返回一个对象。在其上调用
console.log()
将调用
Date.toString()
方法。运行
typeof new Date()
返回“object”@mdickin我知道
new Date()
返回一个对象,这就是为什么我引用了MDN文档来说明这一点。正是这个事实让我质疑Date在直接引用时返回字符串的独特行为。我已经修改了我的示例,将其与
console.log
的用法分离开来,以演示我在日期构造对象中观察到的内容,我想用我自己的构造对象复制这些对象。@bfmags这是一个有趣的问题,与我的问题没有任何关系,但它的答案很粗糙,并引入了严重的性能影响。我正在寻找一个公认的“最佳实践”解决方案来解决我的问题。我不是。我已经修改了我的示例,将其与
console.log的用法分离,以演示我在日期构造对象中观察到的内容,我想用我自己的构造对象复制这些内容。尽管如此,您尝试复制的只是
console
效果。JS中没有对象的这种行为。您所能做的就是编写自己的函数,以特别小心地处理自己的对象。对于
document.write
(您在新示例中使用了该函数),它会将参数强制转换为字符串(如一些函数)-然后它是的副本。我的意思是像
console.log
document.write这样的函数会特别小心地对待传递给它们的对象,而不是对象有特殊的方法。是的,没错。尽管
console.log
仅将
Date
对象强制转换为字符串,并以其他特殊方式记录其他特殊对象(例如DOM节点)。