const Calculate = { factorial(n) { return n * factorial(n - 1) } } let newNumber = Calculate.factorial(8);Entonces, cada vez que llamo a la función, aparece un error factorial no definido. Supongo que tiene algo que ver con que la función esté dentro de un objeto. Necesito ayuda para entender lo que está pasando. Gracias de antemano
Los objetos no crean un ámbito variable, por lo que debe hacer referencia al objeto al llamar al método.
También puede usar this para referirse al objeto en el que se invocó el método, por lo que no tiene que codificar el nombre de la variable.
const Calculate = { factorial(n) { if (n <= 1) { return 1; } return n * this.factorial(n - 1) } } let newNumber = Calculate.factorial(8); console.log(newNumber);