title: javascript return of recursive function
body: <p>Hate to open a new question for an extension to the previous one:</p>
  
  <pre><code>function ctest() {
      this.iteration = 0;
      this.func1 = function() {
          var result = func2.call(this, "haha");
          alert(this.iteration + ":" + result);
      }
      var func2 = function(sWord) {
          this.iteration++;
          sWord = sWord + "lol";
          if ( this.iteration &lt; 5 ) {
              func2.call(this, sWord);
          } else {
              return sWord;
          }
      }
  }
  </code></pre>
  
  <p>this returns iteration = 5 but result UNDEFINED ? how is that possible ? i explicitly return sWord. It should have returned "hahalollollollollol" and just for doublecheck, if i alert(sWord) just before the return sWord it displays it correctly.</p>