JS方法传在递参数时变量之间会有赋值,而原变量会随之改变的解决办法
作者:互联网
比如JS方法:
function diffMonth(n, dt) { console.info(n+":"+dt); dt = dt || new Date(); dt.setMonth(dt.getMonth() + Number(n)); return dt.toLocaleString().replace(/\//g, '-'); }
错误再现:
var ssMonth = new Date("2022-08");
var minDate = diffMonth(-5, ssMonth );
var maxDate = diffMonth(0, ssMonth );
此时得到的结果并非是我们想要的,在执行var maxDate = diffMonth(0, ssMonth );时ssMonth的值变成了5个月之前的日期!
解决办法:
var ssMonth1 = new Date("2022-08");
var ssMonth2= new Date("2022-08");
var minDate = diffMonth(-5, ssMonth1 );
var maxDate = diffMonth(0, ssMonth2 );
把同一个值赋值给两个不同的变量,所以存储地址就不是同一个了。
标签:变量,Date,传在,JS,diffMonth,var,new,dt,ssMonth 来源: https://www.cnblogs.com/firstcsharp/p/16469630.html