js前台开发时遇到改变子参数,会影响父参数的问题
1.问题展现
代码部分
var a = new Date();
var b = a;
b.setDate(b.getDate() + 1);
结果
我们只改变b的情况下a的时间也改变了,原因在于b的时间是哪里来的,b的时间是b=a这个形式,所以代码默认认为,b就是a。
2.解决问题
代码部分修改
var a = new Date();
var b =new Date(a) ;
b.setDate(b.getDate() + 1);
结果
改变了b没有改变a的值。
3.结论
前台的js代码和C#后台的代码有所区别,代码声明不一定这个声明的代码就是新的,只有重新定义后的代码才是新的,赋值的方式无法解决父参数和子参数的问题。