🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 问题 Problem 你想在函数体中调用函数本身。 You want to call a function from within that same function. ## 方法 Solution 使用一个具名函数: With a named function: ~~~ ping = -> console.log "Pinged" setTimeout ping, 1000 ~~~ 在匿名函数中,使用@arguments.callee@: With an unnamed function, using @arguments.callee@: ~~~ delay = 1000 setTimeout((-> console.log "Pinged" setTimeout arguments.callee, delay ), delay) ~~~ ## 讨论 Discussion 尽管`arguments.callee`允许在一个匿名函数中使用递归,并且在内存密集型的程序中可能会有优势,但是具名函数依然有其用途,可以让代码更加清晰,容易维护。 While `arguments.callee` allows for the recursion of anonymous functions and might have the advantage in a very memory-intensive application, named functions keep their purpose more explicit and make for more maintainable code.