将一个Date
变量分配给另一个变量会将引用复制到同一实例。这意味着改变一个将改变另一个。
我怎样才能真正克隆或复制一个Date
实例?
将一个Date
变量分配给另一个变量会将引用复制到同一实例。这意味着改变一个将改变另一个。
我怎样才能真正克隆或复制一个Date
实例?
这是最干净的方法
let dat = new Date()
let copyOf = new Date(dat.valueOf())
console.log(dat);
console.log(copyOf);
var orig = new Date();
var copy = new Date(+orig);
console.log(orig, copy);
简化版:
Date.prototype.clone = function () {
return new Date(this.getTime());
}
我发现这个简单的赋值也有效:
dateOriginal = new Date();
cloneDate = new Date(dateOriginal);
但我不知道它有多“安全”。在 IE7 和 Chrome 19 中成功测试。