Il y a pas mal d'erreurs dans ce code.
Voici une solution qui retourne bien {val: 120, param: 5}
Code : Tout sélectionner
<script>
function factorial (n) {
if(n == 1) { /* il faut s'arreter à 1 */
return {val: 1, param: 1} /* Il faut retourner le bon format */
} else {
return {val: n* factorial(n - 1).val, param: n } /* il faut pas oublier .val */
}
}
console.log(factorial(5));
</script>