-
在
工作后台使用object.assign()进行拷贝,把this.formData传过来,但是在传给后端的时候需要转化里面的值,发现报错了,错误信息如下 -

-
原因的代码如下:

-
在外面有一层时间转成int,里面也有一层时间转成int. - iview中的里面的
DatePicker组件要传的是date,但是我传的是int类型,后面发现是我使用了object.assign()进行浅拷贝,里面的内容还是引用原来的,改成$.extend()就不会了,因为他使用的是深拷贝,把你的内容每一层都拷贝过来,就不会出现这个问题。
一、下面是浅拷贝和深拷贝的区别。
-

-
浅拷贝只是占用同一个内存,但是深拷贝会重新创建个对象,两个对象占用的是不同的内存。
二、 下面是赋值、浅拷贝和深拷贝里面的具体区别。

-
1、 浅拷贝的方法有:
Object.assign()、Array.prototype.concat()、Array.prototype.slice() -
2、 深拷贝的方法有:
JSON.parse(JSON.stringify())、$.extend()、lodash库中的cloneDeep方法,或者自己手写深拷贝代码。 -
以上,thanks.