日期:2014-05-16  浏览次数:20431 次

var arr=Date()和var arr=new Date()一样不
我看到教程上写着
创建 Date 对象的语法:
var myDate=new Date()
我不明白为什么要加个new,两者结果不是差不多么
Sat Feb 25 22:07:34 2012
Sat Feb 25 22:07:14 UTC+0800 2012


------解决方案--------------------
js创建对象一般有三种方式
即:
1、字面量;
2、new关键字
3、省略new
------解决方案--------------------
typeof Date()得到的是一个string,typeof new Date()得到的是一个object,前者获取的是一个日期对象转成的字符串果,后期得到的是日期对象。
JS日期操作的各种toString()方法、get方法、set方法,只有日期对象适用,(你使用前者来试试日期加1天的操作就知道),这意味着没有new方式得到的那个字符串只有重新转成日期对象后才能进行。
------解决方案--------------------
日期对象有toString、toDateString、toUTCString等等等等,无new的Date()执行结果,我猜是看各浏览器各自高兴用哪个方法的缘故,论据它们的具体实现吧。
------解决方案--------------------
上楼,依据它们的各自的具体实现
------解决方案--------------------
没有new是函数调用,有new时函数中this的意义不一样,是当前实例的对象的指针。
------解决方案--------------------
探讨

没有new是函数调用,有new时函数中this的意义不一样,是当前实例的对象的指针。

------解决方案--------------------
管它什么上下文环境和this是什么,这个对日期运算有什么影响?请指教。