sli*_*khi 4 javascript reference
好的,考虑一下这段代码:
var d1 = new Date();
var d2 = d1;
d2.setDate(d2.getDate()+1);
alert(d1 + "\n" + d2);
Run Code Online (Sandbox Code Playgroud)
即使我叫setDate()
上d2
,d1
也正在增加.我理解这是因为d1是d2
通过引用分配的.我的问题是......我怎么不这样做,所以.setDate()
只适用于d2
?
jos*_*736 10
在JavaScript中,所有对象都通过引用分配给变量.您需要创建对象的副本; Date
让它变得简单:
var d2 = new Date(d1);
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的日期对象复制d1
的值.