我想将日期传递给javascript函数以进行某些操作。我在这里面临的问题是:该函数正在更改实际的日期参数,尽管它适用于局部参数。这是我提到我的问题的一个例子
var myDate = new Date();
console.log(myDate);//Result is Mon Oct 22 2018 09:40:01
function manipulate(d){
d.setDate(d.getDate()+1);
console.log(d);//Result is Oct 23 2018 09:40:01
return d;
}
var result = manipulate(myDate);
console.log(result);//Result is Oct 23 2018 09:40:01 as expected.
console.log(myDate);//Result is Oct 23 2018 09:40:01. I want this to be my initial value. That is Mon Oct 22 2018 09:40:01
我猜想如果日期用作参数,则JS使用按引用传递。 我该如何解决上述问题?
此致
SAP学习者
答案 0 :(得分:2)
您必须先复制
function manipulate(d){
var s = new Date(d)
s.setDate(s.getDate()+1);
console.log(s);//Result is Oct 23 2018 09:40:01
return s;
}