e 1 жил өмнө
parent
commit
e449c3c561

+ 71 - 0
day19/html/8.深拷贝.html

@@ -0,0 +1,71 @@
+<!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 person = {
+    //         name: 'LiLi',
+    //         age: 10
+    //     }
+    //     function deepClone(obj) {
+    //         var objs = {};
+    //         for(key in obj) {
+    //            objs[key] = obj[key]
+    //         }
+    //         return objs;
+    //     }
+    //    var news = deepClone(person);
+    //    news.name = 'Lucy';
+    //    console.log(news,'news')
+    //    console.log(person,'person')
+
+
+        // for循环
+        // var arr = [1,2,3,4,5,6];
+        // for(key in arr) {
+        //     // for in 循环的是数组的下标
+        //     console.log(key,'for..in')
+        // } 
+        // for(key of arr) {
+        //     // for of 循环的是数组的值
+        //     console.log(key,'for..of')
+
+        // }
+    
+        var news = {
+            name: '小郑',
+            age: 10,
+            main: {
+                address:'china',
+                sex: "女"
+            }
+        }
+
+        function deepClone(obj) {
+            // 定义一个空对象 用来接收深克隆后的结果
+            var objs = {};
+            // for循环传入的对象 循环的是对象下面的每一项
+            for(key in obj) {
+                // 判断是否是引用数据类型 注意小写
+                if(typeof(obj[key]) == 'object') {
+                    // 再次调用深克隆方法
+                    objs[key] = deepClone(obj[key]);
+                }else {
+                    // 直接复制
+                    objs[key] = obj[key];
+                }
+            }
+            //抛出深克隆后的对象
+            return objs;
+        }
+       var newObjs = deepClone(news);
+       newObjs.main.address = "111";
+       console.log(news,'2')
+       console.log(newObjs,'1')
+    </script>
+</body>
+</html>

+ 41 - 0
day19/html/9.深克隆.html

@@ -0,0 +1,41 @@
+<!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>
+        function deepClone(data) {
+            var temp = {};
+            if(typeof data == 'object') {
+                temp = Array.isArray(data) ? [] : {};
+                for(key in data) {
+                    if(typeof data[key] == 'object') {
+                        temp[key] = deepClone(data[key]);
+                    } else {
+                        temp[key] = data[key];
+                    }
+                }
+            } else {
+                temp = data;
+            }
+            
+            return temp;
+        }
+        var arr = ['list',[100,1]];
+        // var obj = {
+        //     name:'2'
+        // }
+        // Array.isArray(判断的值) 判断是否是数组 是 true / 不是 false
+        //console.log(Array.isArray(obj))
+        var newArr = deepClone(arr)
+        var news;
+        news = newArr;
+        news[1][1] = ['llll'];
+        console.log(news,'news');
+        console.log(arr,'arr')
+    </script>
+</body>
+</html>