这可以称为递归吗?

YOU*_*YOU 8 javascript recursion

function move() {

    pos = pos+1;

    t = setTimeout(move, 100); 
}
Run Code Online (Sandbox Code Playgroud)

这可以称为递归吗?如果是,您能提供任何参考吗?

sta*_*ker 13

不,递归(func_a调用func_a)或间接递归(func_a调用func_b调用func_a)之间的区别在于,使用定时器进行重复调用将(解耦)不会增加堆栈并且先前的状态将丢失.

  • 在执行尾调用优化的语言中的尾递归中也是如此.在Scheme中:`(define(move)(set!pos(+ pos 1))(move))`也不会增长堆栈,但它肯定是递归的.正如我在回答中所说,在递归的东西和不是递归的东西之间并没有真正的强硬路线. (2认同)