求问box函数里返回的是sumF函数,而我并没有声明sumF,并且调用sum函数,执行后返回20,求告知为什么返回的是sum方法返回的值

来源:5-5 返回值的函数

慕娘3064969

2016-11-25 17:31

 function box(sumF, num) {
	      return sumF(num);				
              }

            function sum(num) {
	return num + 10;
          }

       var result = box(sum, 10);
       alert(result);


写回答 关注

3回答

  • 老友丶
    2016-11-25 19:41:05
    已采纳

    box(sum,10) 肯定是执行第一个函数,结果是sunmF(10);这个时候没有玩,肯定还要执行sunmF函数,结果就是10+10=20;

    慕娘3064...

    非常感谢!

    2016-11-25 22:33:29

    共 1 条回复 >

  • 慕盖茨8583337
    2016-11-25 20:56:49

    sum函数被当作参数传入到sumF函数,然后sumF内的函数体实际上变为:return sum(num);num为10,返回值自然为20;

    慕娘3064...

    sumF是函数吗,我这边用alert(typeof box.sumF)显示的是undefined;用alert(typeof box.sumf())直接报错,不是一个function

    2016-11-25 23:05:35

    共 1 条回复 >

  • 方衡
    2016-11-25 19:48:39

     var result = box(sum, 10);你传入参数的时候,传入了一个函数名sum,它就会当成变量传入你的box函数中,然后执行sumF(num);也就是执行sum(10);最后结果就是10+10=20;

    慕娘3064...

    多谢,受教了

    2016-11-25 22:35:53

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题