如何在MoonScript中编写递归函数?

MoonScript 中是否有类似于 JavaScript 中的 arguments.callee 的东西?

点赞
用户1442917
用户1442917

由于 Moonscript 函数是通过 local func; func = function() end 定义的,它们都是递归的。下面的代码将会输出 120:

recursive = (n) -> return n > 1 and n*recursive(n-1) or 1
print recursive 5

据我所知,没有类似 arguments.callee 的替代方案,但我也没有看到需要它的情况。甚至连 Mozilla的文档 也说,“几乎没有使用 arguments.callee 无法通过命名函数表达式获得相同结果的情况。”

2014-06-25 04:57:41