12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- var obj = {
- name: 'zhangsan',
- age: 18,
- sex: '男',
- friend:{
- name: 'lisi',
- age: 19
- }
- }
- var arr = [1,2,3,4,5,[6,7,8,9]];
- // 深拷贝
- function deepClone(obj){
- var res = null;
- // 判断obj是不是对象或者是数组
- if(typeof obj == 'object'){
- if(Array.isArray(obj)){
- res = [];
- // 遍历数组
- for(let item of obj){
- res.push(deepClone(item));
- }
- }else{
- res = {};
- // 遍历对象
- for(let key in obj){
- res[key] = deepClone(obj[key]);
- }
- }
- }else{
- res = obj;
- }
- return res;
- }
- // var arr2 = deepClone(arr);
- // arr[0] = "hello";
- // arr[5][0] = "world";
- // console.log(arr2);
- var obj2 = deepClone(obj);
- obj.age = 20;
- obj.friend.age = 20;
- console.log(obj2);
- </script>
- </body>
- </html>
|