对象内部的递归阶乘 Javascript

Recursive Factorial inside Object Javascript

const Calculate = {
  factorial(n) {
    return n * factorial(n - 1)
  }
}
let newNumber = Calculate.factorial(8);

因此,每次我调用该函数时,都会收到阶乘未定义错误。我猜它与对象内部的函数有关。需要一些帮助来理解发生了什么。提前谢谢你

对象不创建变量作用域,所以调用方法时需要引用对象。

您还可以使用 this 来引用调用该方法的对象,因此您不必 hard-code 变量名。

const Calculate = {
  factorial(n) {
    if (n <= 1) {
      return 1;
    }
    return n * this.factorial(n - 1)
  }
}
let newNumber = Calculate.factorial(8);
console.log(newNumber);