一个菜鸟的奋斗史

一个菜鸟的奋斗史 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

一个菜鸟的奋斗史 回答了问题 · 2019-01-15

解决求解释js递归

第一次进入函数foo(3),此时的参数为3,假设为foo1()被推入执行栈
首先 i不小于0,输出begin:3
进入foo(i - 1),参数为3-1 = 2,假设为foo2()被推入执行栈
i不小于0,输出begin:2
进入foo(i - 1),参数为2-1 = 1,假设为foo3()被推入执行栈
i不小于0,输出begin:1
进入foo(i - 1),参数为1-1 = 0,假设为foo4()被推入执行栈
i不小于0,输出begin:0
进入foo(i - 1),参数为0-1 = -1,假设为foo5()被推入执行栈
i小于0 return,执行栈弹出当前的函数foo5(),进入到上一个函数foo4(),继续执行未完成的代码
输出end:0
执行栈弹出当前的函数foo4(),进入到上一个函数foo3(),继续执行未完成的代码
输出end:1
执行栈弹出当前的函数foo3(),进入到上一个函数foo2(),继续执行未完成的代码
输出end:2
执行栈弹出当前的函数foo2(),进入到上一个函数foo1(),继续执行未完成的代码
输出end:3
执行栈弹出当前的函数foo1(),到此执行栈全部执行完毕

关注 9 回答 7

认证与成就

  • 获得 0 次点赞
  • 获得 0 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 0 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-12-04
个人主页被 55 人浏览