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

Javascript ES6类中的递归方法是否利用了TCO(尾部调用优化)?,javascript,ecmascript-6,tail-recursion,Javascript,Ecmascript 6,Tail Recursion,所以我读到ECMAScript 6(ES6)能够实现TCO。我认为这是:(没有实际目的的粗糙示例…) 我的问题是,我们是否知道ES6类中存在TCO?所以 class TCOish { tcoMethod(acc) { if (acc > 10) { return acc } else { return tcoMethod(acc + 1) } } } // End class definition 在互联网上搜索了一段时间后,我仍然

所以我读到ECMAScript 6(ES6)能够实现TCO。我认为这是:(没有实际目的的粗糙示例…)

我的问题是,我们是否知道ES6类中存在TCO?所以

class TCOish {
  tcoMethod(acc) {
    if (acc > 10) {
      return acc
    } else {
      return tcoMethod(acc + 1)
    }
  }
} // End class definition
在互联网上搜索了一段时间后,我仍然不清楚这一点,我想知道是否有人能给我一个明确的答案

另外值得注意的是,这将用于节点应用程序中,我们不关心浏览器或传输


谢谢。

因此,从安迪在上述评论中提供的信息来看,答案似乎还没有确定。除了在TCO领域领先一点的WebKit之外,这似乎是普遍正确的。值得注意的是,随着TCO支持的增加,这个“答案”的价值会随着时间的推移而降低。

因此,从上面评论中Andy提供的信息来看,答案似乎还没有确定。除了在TCO领域领先一点的WebKit之外,这似乎是普遍正确的。值得注意的是,随着TCO支持的增加,这个“答案”的价值会随着时间的推移而降低。

它没有在节点测试中实现,因为这个优化很简单。只要用大量的递归运行你的函数,如果你得到一个“太多的递归”错误,那么它就不是了。谢谢大家-知道在哪里查找总是有帮助的。Andy的链接提示-这是一个非常棒的功能支持的可视化表示。它需要
this.tcommethod(…)
它没有在节点测试中实现,因为这个优化很简单。只要用大量的递归运行你的函数,如果你得到一个“太多的递归”错误,那么它就不是了。谢谢大家-知道在哪里查找总是有帮助的。Andy的链接提示-这是一个非常棒的功能支持的可视化表示。它必须是
this.tcommethod(…)
class TCOish {
  tcoMethod(acc) {
    if (acc > 10) {
      return acc
    } else {
      return tcoMethod(acc + 1)
    }
  }
} // End class definition