老师,我尽力了,能麻烦再讲一下吗?

老师,我尽力了,能麻烦再讲一下吗?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小鲤鱼</title>
</head>

<body>
<script>
//补充代码
var str1 = '吓得我抱起了';
var str2 = '我的小鲤鱼';
function bz(n){
if(n == 1) return '抱着';
return bz(n - 1) + '抱着';
}
function wd(n){
if(n == 1) return '我的';
return wd(n - 1) + '我的';
}
console.log(bz(3));

document.write(str1+ bz(3) + str2 + wd(3))
</script>
</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,解答如下:

可以就把它当成一个数学运算来看待:

fn(3,"抱着")的值与fn(2,"抱着")有关,那么就把fn(2,"抱着")的值求出来,再带回到式子中,依次类推,最终的结果如下:

fn(3,"抱着")=“抱着”+fn(2,"抱着")=“抱着”+  (“抱着”+fn(1,"抱着")  )=......

同学用笔,将上面的式子写一下,看下能否理解。

先看懂fn(3,"抱着")的计算过程是什么,然后再体会一下fn这个函数的实现思路,暂时要求自己能看懂即可。

祝学习愉快!

好帮手慕久久 2021-04-21 09:46:46

同学你好,这样写是可以的,为了与效果图内容一致,需要将下图中的“我的”改成“的我”:

http://img1.sycdn.imooc.com//climg/607f824509f4fa8305760133.jpg

整个效果中,“抱着抱着抱着”和“的我的我的我”是通过递归生成的,二者可以使用一个统一的方法来实现,如下(注释中有解释,仔细看一下):

http://img1.sycdn.imooc.com//climg/607f838909d888c712760639.jpg

递归这里本身就很难,可以多看几遍,如果看完之后还是觉得模糊,那么也不要急,是正常的。建议同学往下学,多一段时间后(几天),再回头看这里,重复操作几次,慢慢就懂了。

祝学习愉快!

  • 提问者 慕UI4313976 #1
    非常感谢老师耐心细致的指导,我还有一个迷糊的地方:执行顺序A->B->C-"" ,层层返回这里就迷糊了……
    2021-04-21 21:07:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师