1. 程式人生 > >淺談js最基礎的 淺拷貝和 深拷貝

淺談js最基礎的 淺拷貝和 深拷貝

image else typeof 14. img spa == console pre

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最基礎的 淺拷貝和 深拷貝