Javascript Rückkehr der rekursiven Funktion

Ich hasse es, eine neue Frage für eine Erweiterung der vorherigen zu öffnen:

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

Dies gibt Iteration = 5 zurück, aber Ergebnis UNDEFINED? wie ist das möglich ? Ich gebe sWord explizit zurück. Es sollte "hahalollollollollol" und nur für die doppelte Überprüfung zurückgegeben haben, wenn ich (sWord) kurz vor dem Rückkehr-sWord alarmiere, zeigt es es richtig an.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage