码迷,mamicode.com
首页 > Web开发 > 详细

浅谈js最基础的 浅拷贝和 深拷贝

时间:2018-11-14 10:59:51      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:.com   14.   color   拷贝   typeof   复制   .so   UNC   for   

1.浅拷贝 就是一个对象的 值类型的复制

    var dog = {
        name : ‘小黄‘,
        // bark : function(){
        //     console.log(‘汪汪汪!‘)
        // },
        son :{
            name: ‘小小黄‘
        }
    }
    var dog1 = {}
    for(var k in dog){
        dog1[k] = dog[k];
    }
   dog1.name = "小黑"
   console.log(dog.name)/* 小黄*/
   console.log(dog1.name) /*小黑 浅拷贝 对象的属性拷贝 值类型复制*/

//dog1有了dog 的属性且成为了自己的私有属性

2.深拷贝 就是一个对象的 值类型 和引用类型的 复制

     var dog = {
        name : ‘小黄‘,
        // bark : function(){
        //     console.log(‘汪汪汪!‘)
        // },
        son :{
            name: ‘小小黄‘
        }
    }  
var dog2 = {}
 for(var k in dog){
        if(typeof(dog[k]) == ‘object‘){
            var temp = {}
            for(var j in dog[k]){  
                temp[j] = dog[k][j]              
            }
            dog2[k] =temp
        }else{
            dog2[k] = dog[k];
        }
    }
    dog2.son.name = "小小黑"
    console.log(dog.son.name)  /*深拷贝 对象中引用类型的复制*/
    console.log(dog2.son.name)

技术分享图片

浅谈js最基础的 浅拷贝和 深拷贝

标签:.com   14.   color   拷贝   typeof   复制   .so   UNC   for   

原文地址:https://www.cnblogs.com/adi99/p/9956638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!