我知道标题可能不清楚,但是我有以下代码:



var date1=new Date();
alert(date1);
var date2=date1;
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);





为什么date1更改?我认为date1应该保留六个月后的当前日期和date2 ...

谢谢

最佳答案

这两个变量都指向相同的日期对象。您可以改为这样做

var date1=new Date();
alert(date1);
var date2=new Date(date1.valueOf());
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);


通过这种方法,我将使用现有对象的值创建新对象。现在有两个对象由不同的变量指向。

当您将相同的对象分配给两个变量时。

关于javascript - javascript setMonth()-将一个月设置为从date1开始的date2。为什么date1也更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43064452/

10-11 03:14