比如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 );
把同一个值赋值给两个不同的变量,所以存储地址就不是同一个了。