提问老师

提问老师

//编写一个函数,这个函数会自己调用自己

        function single(w) {

            if (w == 0return '我的小鲤鱼';

            return '抱着' + single(w - 1+ '的我';

        }

        document.write('吓得我抱起了' + single(3));

以上的代码中的return '抱着' + single(w - 1) + '的我';

为什么要这样写?不明白!

正在回答 回答被采纳积分+1

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

1回答
好帮手慕张 2021-02-08 13:40:12

同学你好,问题解答如下:

1、"return '抱着' + single(w - 1) + '的我';"代码意思为:返回“抱着”和“single(w - 1) ”和“的我”。具体执行如下:

2、传入的参数为3

第一次执行:参数w=3;不满足if语句判断条件w==0,因此执行下一句,返回"抱着"和调用一次函数(single(3-1))和“的我”。此时返回的结果为,”抱着抱着+single(3-1)+我的我的“。因为调用了一次函数,所以函数继续执行;

第二次执行:参数w=2;不满足if语句判断条件w==0,因此执行下一句,返回"抱着"和调用一次函数(single(2-1))和“的我”。此时返回的结果为,”抱着抱着+single(2-1)+我的我的我的“。因为调用了一次函数,所以函数继续执行;

第三次执行:参数w=1;满足if语句判断条件w==0,因此执行if语句中的return语句,返回“我的小鲤鱼”

最后进行字符串的拼接实现任务效果

以上为代码的执行过程,同学可参考理解

http://img1.sycdn.imooc.com//climg/6020ce920966e9bf04880408.jpg

3、这里不理解可以看出同学对递归函数的认识还不够,建议同学可以多看几遍关于递归函数的讲解。这里就是使用的递归函数,递归函数实际就是在函数内部调用自己从而实现循环执行。

祝学习愉快!

  • 提问者 leepulse #1

    听到老师说的递归函数实际就是在函数内部调用自己从而实现循环执行,现在明白了


    2021-02-08 14:19:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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