2012-04-10 76 views
0

我想从另一个JS对象的日期JS中初始化一个变种,但无论我想要引用旧的对象(指针),我需要它不要改变。按值而不是参考值设置对象

var lastActionDate = new Date(mainLastActionDate); 
var nowDate = new Date(); 
var tmpLastActionDate = lastActionDate; 

if ((tmpLastActionDate.setDate(tmpLastActionDate.getDate() + 7)) > nowDate) 

最后一行是问题行。我认为lastActionDate不应该改变,我需要它保留旧的日期,但它随着tmpLastActionDate的变化,我猜测,因为它是一个指针。

如何通过值而不是引用设置日期对象?

+0

能否请您发布一些代码?我真的不明白你想在这里实现什么... – 2012-04-10 08:24:23

+0

对不起,补充:-) – Erez 2012-04-10 08:24:59

+1

使用副本:'var tmpLastActionDate = new Date(lastActionDate);' – RobG 2012-04-10 09:07:01

回答

2

试试这个:

d=new Date() 
e=new Date(d.valueOf()) 
+0

非常简单,谢谢,在5分钟内我会将你的答案标记为正确的......这么简单,有价值,愚蠢的我:-) – Erez 2012-04-10 08:28:51

+0

@ camus-你可以做'e - new Date(d);',不需要'valueOf'或' getTime'。 – RobG 2012-04-10 09:11:20

+0

我想我已经尝试过,并没有工作,不知道为什么......但这个工程,10倍 – Erez 2012-04-10 10:42:18