javascript return of recursive function

前端 未结 4 1918
别那么骄傲
别那么骄傲 2020-12-06 11:22

Hate to open a new question for an extension to the previous one:

function ctest() {
    this.iteration = 0;
    this.func1 = function() {
        var result         


        
4条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-06 11:46

    You need to return the result of the recursion, or else the method implicitly returns undefined. Try the following:

    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 < 5 ) {
            return func2.call(this, sWord);
        } else {
            return sWord;
        }
      }
    }
    

提交回复
热议问题