js递归处理数据(JS实现递归的3种方法)

大家好,张承辉来为大家解答以上问题。js递归处理数据,JS实现递归的3种方法很多人还不知道,现在让我们一起来看看吧!

1、 通过函数本身的名字递归调用。

2、 function sum(num){ if(num=1){ return 1;} else { return num sum(num-1);}}

3、 这种通过函数名调用自身的方法有一个问题:函数名是指向函数对象的指针。如果我们断开函数名和函数对象本身的指向关系,这个方法就会有错误。

4、 通过arguments.callee调用函数本身

5、 function sum(num){ if(num=1){ return 1;} else { return num arguments . callee(num-1);} } console . log(sum(5));//15 varsumanother=sum;console . log(sumAnother(5));//15 sum=null;console . log(sumAnother(5));//15

6、 这种方法很好的解决了函数名改变时,递归调用时找不到自己的问题。但是这种方法并不完美,因为arguments.callee在严格模式下是被禁止的。

7、 arguments.callee的作用是通过函数命名表达式来实现的。

8、 varsum=(function(){ ‘ use strict ‘ returnfunctionfun(num){ if(num=1){ return 1;} else { return num fun(num-1);}}})()控制台. log(sum(5));//15 varsumanother=sum;console . log(sumAnother(5));//15 sum=null;console . log(sumAnother(5));//15

本文到此结束,希望对大家有所帮助。

(0)
上一篇 2022年7月10日
下一篇 2022年7月10日

相关推荐