淺談js最基礎的 淺拷貝和 深拷貝
阿新 • • 發佈:2018-11-14
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(vark 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最基礎的 淺拷貝和 深拷貝