为什么输出是undefined??????????

bustersword 2017-01-13 09:41:30
function func1(msg){console.log('1echo '+msg);
return msg+1;}
function func2(msg){console.log('2echo '+msg);
return msg+2;}
function func3(msg){console.log('3echo '+msg);
return msg+3;}
rest=[func3,func2];

rest.reduceRight((composed, f) =>{f(composed)}, func1(0))



结果:
"1echo 0"
"2echo 1"
"3echo undefined"


为什么最后的输出是undefined???
...全文
415 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复



xml 的增删改查 用核心DOM 是完全可以操作的 不要用HTML DOM 就可以了
bustersword 2017-01-13
  • 打赏
  • 举报
回复
引用 2 楼 ipqtjmqj 的回复:
lambda表达式中加个return就OK
()=>expression 的格式就是默认 return 而加了{} 必须得显示指定 return,嗯ES6的 “arrow function” 、匿名函数、lambda...
当作看不见 2017-01-13
  • 打赏
  • 举报
回复
ipqtjmqj 2017-01-13
  • 打赏
  • 举报
回复
lambda表达式中加个return就OK
bustersword 2017-01-13
  • 打赏
  • 举报
回复
已解决,因为花括号的原因,需要显示 指定 return
天际的海浪 2017-01-13
  • 打赏
  • 举报
回复
rest.reduceRight(((composed, f)=>f(composed)), func1(0))
ipqtjmqj 2017-01-13
  • 打赏
  • 举报
回复
引用 4 楼 bustersword 的回复:
[quote=引用 2 楼 ipqtjmqj 的回复:] lambda表达式中加个return就OK
()=>expression 的格式就是默认 return 而加了{} 必须得显示指定 return,嗯ES6的 “arrow function” 、匿名函数、lambda...[/quote] 我也是菜鸟。我一开始把匿名函数换成普通函数,发现结果正确,从而判断是匿名函数写错了

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧