ES6类中的递归方法是否利用了TCO(尾调用优化)?

时间:2016-04-07 19:48:50

标签: javascript ecmascript-6 tail-recursion

所以我读过ECMAScript6(ES6)能够进行TCO。我已经看到这被证明为:(粗略的例子没有实际目的......)

const tcoFn = (acc) => {
  if (acc > 10) {
    return acc
  } else {
    return tcoFn(acc + 1)
  }
}

我的问题是,我们是否知道我们在ES6课程中获得TCO?所以,

class TCOish {
  tcoMethod(acc) {
    if (acc > 10) {
      return acc
    } else {
      return tcoMethod(acc + 1)
    }
  }
} // End class definition

在对Interwebs进行一些搜索之后,这对我来说仍然不清楚,我想知道是否有人可以指出我的明确答案?

另外值得注意的是,这将在我们不关心浏览器或转换的Node应用程序中使用。

谢谢。

1 个答案:

答案 0 :(得分:0)

所以,从Andy在上面的评论中提供的link来看,答案还没有。除了在TCO领域领先一步的WebKit之外,这似乎是正确的。值得注意的是,随着TCO支持的增长,这种“答案”的价值会逐渐降低。