我需要在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);
对不起我的英文,标题太奇怪了。我希望得到一些解释为什么会发生这种情况。
谢谢,
答案 0 :(得分:0)
当你使用minExpDate = expDate时,你传递了一个引用, 所以现在minExpDate拥有一个指向expDate的指针。
如果您希望它们分开,则需要创建一个新对象:
var expDate = new Date();
var minExpDate = new Date();
var maxExpDate = new Date();