1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <!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>
|