为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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


正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕娘3064969 提问者

非常感谢!
2016-11-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕娘3064969 提问者

sumF是函数吗,我这边用alert(typeof box.sumF)显示的是undefined;用alert(typeof box.sumf())直接报错,不是一个function
2016-11-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕娘3064969 提问者

多谢,受教了
2016-11-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信