目前我找到的對遞歸最恰當?shù)谋扔餍咏冢褪遣樵~典唬渗。
我們使用的詞典,本身就是遞歸奋渔,為了解釋一個詞镊逝,需要使用更多的詞。
當你查一個詞嫉鲸,發(fā)現(xiàn)這個詞的解釋中某個詞仍然不懂撑蒜,于是你開始查這第二個詞,可惜玄渗,第二個詞里仍然有不懂的詞座菠,于是查第三個詞,這樣查下去藤树,直到有一個詞的解釋是你完全能看懂的浴滴,那么遞歸走到了盡頭,然后你開始后退岁钓,逐個明白之前查過的每一個詞升略,最終,你明白了最開始那個詞的意思屡限。品嚣。。
解釋:
遞歸,就是在運行的過程中調(diào)用自己
const oldObj = {
name:'測試',
age:20,
colors:['orange','green','blue'],
friend:{
name:'小夏'
}
}
// 深拷貝函數(shù)
function deepClone(obj){
if(typeof obj !=='object' || obj == null){
return obj;
}
let result;
if(obj instanceof Array){
result=[]
} else {
result ={}
}
for(let key in obj){
if(obj.hasOwnProperty(key)){
result[key] = deepClone(obj[key])
}
}
return result;
}
const newObj2 = deepClone(oldObj)
newObj2.friend.name = '小野'
newObj2.name = 'xiannv'
newObj2.colors[4]='black'
console.log('oldObj',oldObj)
console.log('newObj',newObj2)