递归函数

递归函数就是在函数内部调用自己

var dic={};//定义一个空对象

function getElemId(elem){
//判断如果这个id存在
if(elem.id){
      //给dic对象添加一个属性
       dic[elem.id]=elem;
}
//循环这个大对象下的所有子对象
for(var i=0;i<elem.children.length.i++){
//递归函数  实现循环所有子对象
getElemId(elem.children[i]);
}
return dic;

}

以上代码的实现场景为
有一个大的div ,div中还有一个div1,div1中有一个ul  ul中有4个li   …………列出所有id存在的元素对象
getElemId(document.body);

递归函数的执行方式,在函数内部遇到执行自己的函数(递归函数),他会复制自己的副本,之后会从最后的副本中一次返回给前一个如

他们综合到一起的话如

var i=0;
var sum=0;

function show(){
      
    if(i>2){
         return  sum;
      }

      i++;
      sum+=i;
     return   show();   6

}

 

posted @ 2020-05-27 21:48  WhiteSpace  阅读(141)  评论(0编辑  收藏  举报