title: JavaScript factorial
body: <p>Cant wrap my head around <strong>arguments.callee</strong> and why truefactorial = 120. Some help would be much appreciated</p>
  
  <pre><code>    function factorial(num){
          if (num &lt;= 1) {
              return 1;
          } else {
              return num * arguments.callee(num-1)
          }
      }
  
      var trueFactorial = factorial;
  
      factorial = function(){
          return 0;
      };
  
      alert(trueFactorial(5));   //120
  </code></pre>