将"(0)"附加到此闭包函数的目的是什么?

Not*_*ent 0 javascript

正如标题所述,追加(0);而不仅仅是();在这个代码中的目的是什么snippit(在这里找到):

function runner (fns, context, next) {
  var last = fns.length - 1;

  (function run(pos) {
    fns[pos].call(context, function (err) {
      if (err || pos === last) return next(err);
      run(++pos);
    });
  })(0);
}
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 5

它大致相当于:

function runner (fns, context, next) {
  var last = fns.length - 1;

  function run(pos) {
    fns[pos].call(context, function (err) {
      if (err || pos === last) return next(err);
      run(++pos);
    });
  }

  run(0);
}
Run Code Online (Sandbox Code Playgroud)

0正如传递给run()第一个值的那样pos- 与递归中的相同run(++pos);(可以更好地写为run(pos + 1)).