javascript setMonth() - 从date1设置一个月到date2.为什么date1也会改变?

Fra*_* G. 1 javascript date

我知道,标题可能不清楚,但我有这个代码:

var date1=new Date();
alert(date1);
var date2=date1;
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);
Run Code Online (Sandbox Code Playgroud)

为什么date1会改变?我认为date1应该在六个月之后仍然是当前日期和日期2 ...

谢谢

qub*_*yte 5

日期是JavaScript中的对象.当您设置date2=date1,都date1date2会引用同一个对象.由于它们都是对同一日期对象的引用,因此可以使用其中任何一个更新或检查对象.

  • ...创建副本:`date2 = new Date(date1.getTime());` (2认同)