- 对于基本数据来说,将一个变量赋值给另一个变量,第二个变量值改变了,不会影响第一个变量;
- 但对于复杂类型中的对象来讲,将一个对象赋值给另外一个对象,其实是将放对象内容的地址赋值给了第二个对象,它们指的都是一个内容,当第二个对象把内容改了,那第一个对象指的也是这个内容,那就会造成第一个变量也会被改变;
- 由此我们有了浅copy和深copy两个概念;
- 浅拷贝:只能解决复杂类型对象中一级对象的赋值问题;
- 一级对象指的是:value值只是基本的数据类型,例如:{name:”yiyi“,age:21}这样的;
- 深拷贝:解决复杂类型的赋值问题;
- 复杂类型指的是:例如:{name:"yiyi",location:{city:"zr",province:"hn"}};
- 深浅拷贝都是为了保证赋值时,改变第二个变量的值(赋值号左边),不会影响第一个变量的值(赋值号右边);
1、浅copy:针对一级对象赋值问题的解决办法:
- for循环遍历法:
<script>
//一级对象,for循环