让我们回到我们的程序, 此程序利用函数功能 描画了四个Winston(大黄娃娃头)。 我已经改变了他 在每一年龄阶段实际年龄的显示。 你很快会明白为什么。 但首先我需要让你们知道关于 Winston 的某些事情。 Winston 特别喜欢炸甜面圈, 他一天吃三个。 那就是他的脸又大又黄的原因。 所以为了警告Winston有关 炸甜面圈对他有多么不好, 我想修改一下这个程序 显示他在每个年龄段吃了 多少个炸甜面圈。 比如,当他两岁的时候, 那意味着他吃了3x365x2, 所以是一天三个,乘以365天, 再乘以2年, 我们会在那个头下面显示那个结果。 哇,这么多! 两千个炸甜面圈,对一个两岁的 孩子来说真的很多。 现在他是十四岁,让我们看看, 应该是3乘以365 再乘以14, 那就是15,000个。好了。 我可以一直用这个算式, 但我开始注意到一个模式。 我在重复我的计算。 虽然我只是改变一个数字: 年数。 无论何时当我看到这样的重复编码, 我会想,“嗯,我能把这变成一项函数吗?“ 是的,绝对可以。 那么现在让我们来试试看。 我会在这儿定义我的函数 或者把它叫做calTotalDonuts=function 它需要一个参数,年龄的数目, 因为那是我们每次 做计算时唯一有变化的数字。 我们将在这里面做计算, 并将其存作一个变量, 所以是3乘以365 乘以numYears. 可以啦,现在我们就有了这个函数功能。 我会用calcTotalDonuts来替代这个表达式 使用函数功能,并且输入“2” 好了,我们并没有看见总数 那么,怎么回事儿? 哦,我们的函数功能在这儿计算了总数 但没有告诉任何人那个总数。 就像老师在课堂上叫你起来回答问题 你的答案在你的脑子里, 但你羞于把它说出来。 你已经完成了工作,但你的老师 却不知道, 如果我们想让函数把值告诉给 调用它的人, 那这个函数必须明确地回返一个值。 所以,为了函数能回返一个值, 我们必须写下“return” 然后就有了它所要的回值。 也许它是一个变量或者 是一个值或一个表达式, 那么在这儿我们就敲上 return totalDonuts,行吗? 这样调用这个函数就能得到回应了 现在我们的值显示在此,好棒! 事实上我们能够缩短我们的函数, 我们甚至不用把它存进变量, 我们仅仅把这儿的整个表达式 放进回车,然后它就仅有一行。很好。 好吧,现在我们可以履行 在一生的各个年龄段 计算炸甜面圈的总量 只需点击这个函数功能 并且输入年数。 让我们来看看,这是 calcTotalDonuts(25), 没有打错地方,it's calcTotalDonuts(65) 好了!很棒,如果他到了65岁, 它就吃了70,000个炸甜面圈。 这太多了。 我觉得Winston不会活那么长。(笑声) 但现在我们已经把它做成了函数功能, 要改变一下它的某些部分也很容易。 比如Winston明白这个并且说, “哇,哇,这太多了。如果我每天 只吃一个怎么样?” 行, 我们可以从这儿开始, 改变这一个数字, 然后看看所有的变化。 这是23,000.还是很多。 那么Winston又说, “好吧,好吧,如果我每周吃一个怎么样?” 好的,这样比较合理。 那么我们只需要把365 变为50, 因为好像是一年50个星期,是吗? 好,这就好多了,是吗? 3000个炸甜面圈,这看起来还比较合理。 所以,你看利用函数和回返值, 我们能够缩短编码而且挽救生命。