深浅拷贝

深拷贝和浅拷贝

1、浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。

2、深拷贝拷贝多层,每一级别的数据都会拷贝。

3、Object.assign(target,...sources) : ES6新增方法可以浅拷贝。推荐这种方法。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>深浅拷贝</title>
 6     </head>
 7     <body>
 8         <script>
 9             // 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用
10             // 深拷贝拷贝多层,每一级别的数据都会拷贝
11             var obj = {
12                 id: 1,
13                 name: 'andy'
14             };
15             var o = {};
16             for (var k in obj) {
17                 // k是属性值 obj[k]属性值
18                 o[k] = obj[k];
19             }
20             console.log(o); // {id: 1, name: 'andy'}
21         </script>
22     </body>
23 </html>

 Object.assign浅拷贝

1     var obj = {
2         id: 1,
3         name: 'andy'
4     };
5     var o = {};
6     Object.assign(o, obj);
7     console.log(o); // {id: 1, name: 'andy'}
原文地址:https://www.cnblogs.com/guwufeiyang/p/13176471.html