|
@@ -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>
|