当前位置: 首页 > 生活问答 > 生活资讯 > JS实现递归的3种方法

JS实现递归的3种方法

网站编辑:上海建站网 发布时间:2022-04-19  点击数:
导读:操作步骤/方法1通过函数自身名字递归调用2functionsum(num){if(num<=1){return1;}else{returnnum+sum(num-1);}}3这种通过函数名字调用自身的方式存在一个问题:函数的名字是一个指向函数对象的指针,如果我们把函数的名字与函数对象本身的指向关系断开,这种方式运行时将出现错误。4通过arguments.callee调用函数自身5functi...
JS实现递归的3种方法

操作步骤/方法

1 通过函数自身名字递归调用 2 functionsum(num){if(num<=1){return1;}else{returnnum+sum(num-1);}} 3 这种通过函数名字调用自身的方式存在一个问题:函数的名字是一个指向函数对象的指针,如果我们把函数的名字与函数对象本身的指向关系断开,这种方式运行时将出现错误。 4 通过arguments.callee调用函数自身 5 functionsum(num){if(num<=1){return1;}else{returnnum+arguments.callee(num-1);}}console.log(sum(5));//15varsumAnother=sum;console.log(sumAnother(5));//15sum=null;console.log(sumAnother(5));//15 6 这种方式很好的解决了函数名指向变更时导致递归调用时找不到自身的问题。但是这种方式也不是很完美,因为在严格模式下是禁止使用arguments.callee的。 7 通过函数命名表达式来实现arguments.callee的效果。 8 varsum=(function(){'usestrict'returnfunctionfun(num){if(num<=1){return1;}else{returnnum+fun(num-1);}}})()console.log(sum(5));//15varsumAnother=sum;console.log(sumAnother(5));//15sum=null;console.log(sumAnother(5));//15 END

  以上就是小编为大家介绍的JS实现递归的3种方法的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!

  标签:
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!
浏览此文的人还看过
如家酒店怎么查询历史订单记录
如家酒店怎么查询历史订单记录

详情:操作步骤/方法1首先在手机上下载并安装首旅如家APP。2点击......

nba2k online2跳步
nba2k online2跳步

详情:操作步骤/方法【方法1】1跳步的操作方法是:方向键【】和【W......

怎么用美图秀秀制作宣传图
怎么用美图秀秀制作宣传图

详情:操作步骤/方法1想更有吸引力的文字可选择/漫画文字/动画文字......

火炬之光2冰法师怎么加点
火炬之光2冰法师怎么加点

详情:操作步骤/方法1火炬之光2法师寒霜技能冰雹雨:15级强力的A......