好的,考虑一下这段代码:
var d1 = new Date();
var d2 = d1;
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);
即使我在setDate()
上呼叫d2
,d1
也会递增。我理解这是因为d1通过引用分配给d2
。我的问题是......我怎么不这样做,以便.setDate()
仅适用于d2
?
答案 0 :(得分:10)
在JavaScript中,all objects are assigned to variables 'by reference'。您需要创建对象的副本; Date
让事情变得简单:
var d2 = new Date(d1);
这将创建一个复制d1
值的新日期对象。
答案 1 :(得分:1)
答案 2 :(得分:0)
认为这应该有效:
var d1 = new Date();
var d2 = new Date();
d2.setDate(d1.getDate());
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);