按值而不是引用设置对象

时间:2012-04-10 08:18:05

标签: javascript

我正在尝试使用另一个JS对象的日期来初始化JS中的var,但是我正在尝试获取对旧对象(指针)的引用,我需要它不要更改。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:1)

您必须克隆原始Date对象。 您可以使用此方法:

var date = new Date();
var copiedDate = new Date(date.getTime());

参考:How to clone a Date object in JavaScript