将Date变量分配给另一个变量会将引用复制到同一实例。这意味着更改一个将更改另一个。我实际上如何克隆或复制Date实例?
3 回答

浮云间
TA贡献1829条经验 获得超4个赞
使用Date对象的getTime()方法,该方法返回自1970年1月1日00:00:00(纪元时间)以来的毫秒数:
var date = new Date();
var copiedDate = new Date(date.getTime());
在Safari 4中,您还可以编写:
var date = new Date();
var copiedDate = new Date(date);
...但是我不确定这是否可以在其他浏览器中使用。(它似乎在IE8中有效)。

慕运维8079593
TA贡献1876条经验 获得超5个赞
这是最干净的方法
let dat = new Date()
let copyOf = new Date(dat.valueOf())
console.log(dat);
console.log(copyOf);

DIEA
TA贡献1820条经验 获得超2个赞
我发现这个简单的赋值也可以工作:
dateOriginal = new Date();
cloneDate = new Date(dateOriginal);
但是我不知道它有多“安全”。在IE7和Chrome 19中成功测试。
添加回答
举报
0/150
提交
取消