将参数传递给递归函数javaScript

将参数传递给递归函数javaScript,javascript,recursion,Javascript,Recursion,我知道setTimeOut的最佳实践是发送一个匿名函数,其中包含我想在其中重做的函数。 为什么不起作用 function movement(dir) { ... ... setTimeOut(function (){movement(dir);},21); 它会起作用的。当然,函数的名称是setTimeout(),而不是setTimeout()。请参见此示例: function movement(dir) { console.log(dir); if (

我知道setTimeOut的最佳实践是发送一个匿名函数,其中包含我想在其中重做的函数。 为什么不起作用

function movement(dir) {
    ...
    ...
        setTimeOut(function (){movement(dir);},21);

它会起作用的。当然,函数的名称是
setTimeout()
,而不是
setTimeout()
。请参见此示例:

function movement(dir) {
  console.log(dir);
  if (dir++ < 5) {
    setTimeout(function () {
      movement(dir);
    }, 21);
  }
};

movement(1);
它确实有效:
1
2
3
4
5