深拷贝和浅拷贝

深拷贝

①深拷贝_如果属性都是json对象,那么用递归的方式

const p={'id':10,'name':'张三','score':new Arrey(100,'数学',90)}
const deepClone=function(obj){
  const newObj=Array.isArray(obj)? []:{};
  for(let key in obj){
     const template=typeof obj[key]=='object'? deepClone(obj[key]) : obj[key]
     newObj[key]=template
  }
retuen newObj }; const p2
=deepClone(p); p2.score[0]=99; console.log(p2); console.log(p)

 

var  p={'id':10,'name':'张三','score':new Array(100,'数学',90)};
var p2
for(let key in p){
  if(typeof p[key]=='object'){
    p2[key]=[]  //上边定义的是个数组
    for(let i in p[key]){
       p2[key][i]=p[key][i]
    }
  }else{
    p2[key]=p[key]
  }
}

p2.score[1]='生物'
console.log(p2)
console.log(p)

 

posted @ 2021-07-08 15:41  飞扬*  阅读(28)  评论(0)    收藏  举报