[英]javascript setMonth() - setting a month to date2 from date1. Why also date1 change?
我知道标题可能不清楚,但是我有以下代码:
var date1=new Date(); alert(date1); var date2=date1; alert(date2); date2.setMonth(date1.getMonth() + 6); alert(date1+" - "+date2);
为什么date1更改? 我认为date1应该保留六个月后的当前日期和date2 ...
谢谢
日期是JavaScript中的对象。 当设置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);
通过这种方法,我将使用现有对象的值创建新对象。 现在有两个对象由不同的变量指向。
当您将相同的对象分配给两个变量时。
因为date2获取对date1的引用,而不是值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.