【发布时间】:2015-07-21 23:13:18
【问题描述】:
考虑以下代码:
f=(m,c)=>{m?c()&f(--m,c):0}
(感谢 zzzzBov 提供的这个小金块)
这是一个“for”-less 循环
以及以下内容:
a=b=>b+1
鉴于这两个 sn-ps,以及以下事实:
z = 0; f(10,a(z));
我希望 z 等于 10,但在 JavaScript 控制台中返回以下 "TypeError: c is not a function",如何更改此代码以确保循环继续进行,而不必求助于while 或 for 循环?
我问这个是出于教育目的...希望我能对可以做些什么有所了解...
【问题讨论】:
-
a=b=>b++实际上没有意义 -
@zerkms
a=b=>b++当你意识到它等同于a = function(b){return b++;}时,它是非常有意义的 -
a = function(b){return b++;}也没有任何意义。和a = function(b) { return b; }一模一样 -
@zerkms 编辑更有意义...
a=b=>b+1怎么样? -
a=b=>b+1确实更有意义
标签: javascript recursion ecmascript-6 arrow-functions