分配好考虑这段代码:的javascript - 如何才能不被引用
var d1 = new Date();
var d2 = d1;
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);
即使我打电话setDate()
上d2
,d1
也正在增加。我明白这是因为通过引用将d1分配给d2
。我的问题是...我怎么不这样做,所以.setDate()
只适用于d2
?
分配好考虑这段代码:的javascript - 如何才能不被引用
var d1 = new Date();
var d2 = d1;
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);
即使我打电话setDate()
上d2
,d1
也正在增加。我明白这是因为通过引用将d1分配给d2
。我的问题是...我怎么不这样做,所以.setDate()
只适用于d2
?
在JavaScript中,all objects are assigned to variables 'by reference'。您需要创建该对象的副本; Date
很容易:
var d2 = new Date(d1);
这将创建一个新的日期对象拷贝d1
的价值。
认为这应该工作:
var d1 = new Date();
var d2 = new Date();
d2.setDate(d1.getDate());
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);