I am learning about recurssion in JavaScript but struggling to get my head around this code:

```
function fac(n) {
if (n == 0)
    return 1;
  else
    return fac(n - 1) * n; //bit am having difficulty understanding
}
console.log(fac(5));

```

I can understand this fine:

```
var countdown = function(n){
    if (n>-1){
        console.log(n);
        countdown(n-1);
    } 
}

```

I understand the mathematical concept of factorial.