如果我要使用Date()生成日期并在我的脚本中使用它的方法,我应该创建一个Date()对象并重新使用它,或者每次只创建一个新实例吗?
这样做效率更高\更快:
var1 = new Date(2014, 5, 3)
var2 = new Date(2013, 2, 30)
var3 = new Date(2015, 10, 2)
或者这个:
myDate = new Date()
myDate.setDate(3)
myDate.setMonth(5)
myDate.setYear(2014)
var1 = myDate
myDate.setDate(30)
myDate.setMonth(2)
myDate.setYear(2013)
var2 = myDate
myDate.setDate(2)
myDate.setMonth(10)
myDate.setYear(2015)
var3 = myDate
编辑:我的问题不是很清楚,让我试着解释一下:
我只使用Date()对象作为其方法并生成日期 - 这意味着我真的不需要一堆Date()对象,我可以使用它来执行一次性操作,如生成一些日期和调用类似toJSON()的方法或其他东西。在我生成日期并调用方法之后,我不需要挂起持久对象,因为我不会对它做任何事情。是否会消耗更少的资源来重用这样的Date()对象,还是更慢?
另一个编辑: 我以为我也可以把它放在一个函数中,所以我会这样做:
myDate = new Date();
setDate = function(dateObj,day,month,year) {
dateObj.setDate(dat);
dateObj.setMonth(month);
dateObj.setYear(year);
return myDate;
}
var1 = setDate(myDate,12,10,2014);
这样做有什么价值?
答案 0 :(得分:3)
你的例子是两回事。第一个示例创建三个单独的Date对象,它们可以有三个不同的日期。
第二个示例创建一个Date对象,var1,var2和var3指向。当您更改Date对象时,var1,var2和var3都将看到该更改。
答案 1 :(得分:0)
new Date是一个构造函数。它是用javascript编写的。在OO编程中,您通常不会复制代码。因此,如果你有一个构造函数new Date() - 你在JS和setter中,那么很可能新的Date(2013,2,30)相当于:
var myDate = new Date();
myDate.setDate(30);
myDate.setMonth(2);
myDate.setYear(2013);
根据这一点,单独的分配将花费你,而你提出的第二种方式更快。 但是(!!!)这两种方式不会给出相同的结果。在第一个你获得三个不同的对象。在后来你只得到一个。