首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript尾部调用中的函数是优化的吗?

JavaScript尾部调用中的函数是优化的吗?
EN

Stack Overflow用户
提问于 2016-05-14 16:36:38
回答 4查看 33.6K关注 0票数 84

我一直在尝试在JavaScript上下文中理解Tail call optimization,并为factorial()编写了下面的递归和尾递归方法。

递归:

代码语言:javascript
复制
function factorial (n) {
  if (n < 2) {
    return 1;
  } else {
    return n * factorial(n-1);
  }
}

Tail-recursive:

代码语言:javascript
复制
function factorial (n) {
  function fact(n, acc) {
    if (n < 2) {
      return acc;
    } else {
      return fact(n-1, n * acc);
    }
  }

  return fact(n, 1)
}

但我不确定这个函数的tail-recursive版本是否会像在Scala等其他语言中那样被JavaScript编译器优化。有人能帮我解决这个问题吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37224520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档