什么是递归?

目前我找到的对递归最恰当的比喻,就是查词典。
我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。
当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词,可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。。。

解释:
递归,就是在运行的过程中调用自己

 const oldObj = {
         name:'测试',
         age:20,
         colors:['orange','green','blue'],
         friend:{
             name:'小夏'
         }
     }
 
     // 深拷贝函数
     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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容