变量之一后,值对象发生变化

时间:2016-05-18 08:18:58

标签: javascript date object

我需要在javascript中解释对象或日期。 因为我使用一个对象(日期)创建了一些变量,但是在我更改了一个新变量之后,所有变量和对象都在变化。我不知道为什么会这样。

以下是代码

var expDate = new Date(Date.now());
var minExpDate = expDate;
var maxExpDate = expDate;

minExpDate.setDate(minExpDate.getDate() + 30);
maxExpDate.setDate(maxExpDate.getDate() + parseInt(chf.Get('ExtraDays')));

alert(expDate + '\n' + minExpDate + '\n' + maxExpDate);

但如果我制作新物品也没关系

var expDate = new Date(Date.now());
var minExpDate = new Date(expDate);
var maxExpDate = new Date(expDate);

minExpDate.setDate(minExpDate.getDate() + 30);
maxExpDate.setDate(maxExpDate.getDate() + parseInt(chf.Get('ExtraDays')));

alert(expDate + '\n' + minExpDate + '\n' + maxExpDate);

对不起我的英文,标题太奇怪了。我希望得到一些解释为什么会发生这种情况。

谢谢,

1 个答案:

答案 0 :(得分:0)

当你使用minExpDate = expDate时,你传递了一个引用, 所以现在minExpDate拥有一个指向expDate的指针。

如果您希望它们分开,则需要创建一个新对象:

var expDate = new Date();
var minExpDate = new Date();
var maxExpDate = new Date();