我知道,标题可能不清楚,但我有这段代码:
var date1=new Date();
alert(date1);
var date2=date1;
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);

为什么date1会改变?我认为date1应该在六个月之后仍然是当前的日期和日期......
由于
答案 0 :(得分:5)
日期是JavaScript中的对象。设置date2=date1
后,date1
和date2
都会引用同一个对象。由于它们都是对同一日期对象的引用,因此可以使用其中任何一个来更新或检查对象。
答案 1 :(得分:1)
两个变量都指向同一个日期对象。你可以这样做
var date1=new Date();
alert(date1);
var date2=new Date(date1.valueOf());
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);
在这种方法中,我使用现有值创建新对象。现在有两个对象由不同的变量指向。
虽然您已为这两个变量分配了相同的对象。
答案 2 :(得分:0)
因为date2获取对date1的引用,而不是value。