Javascript在一个简单的阶乘函数上"过多递归"

clu*_*ddy 1 javascript recursion

我在这里经历了一些"过多的递归"问题和答案,但每个问题都解决了一个特定问题,但我无法从他们那里推断出一个正确的答案来回答这个代码错误,如何解决它以及为什么我'得到那个错误:

<body>
<input type="number" id="num">
<input type="button" id="submit" onclick="factor()"><br>
<div id="yourResult"></div>
<script>
    inputValue = document.getElementById('num').val;
    function factor(n){
        if(n==0){
            return 1;
        }
        if(n==1){
            return 1;
        }
        return n * factor(n-1);
    }
    function result() {
        $('yourResult').append('<p>your factorial of ' + inputValue + ' equals to: ' + factor()+'</p>');
    }
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

sin*_*ren 5

您需要传递参数值.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<input type="number" id="num">
<input type="button" id="submit" value="Get Factorial" onclick="result()"><br>
<div id="yourResult"></div>
<script>

    function factor(n){
        if(n==0){
            return 1;
        }
        if(n==1){
            return 1;
        }
        return n * factor(n-1);
    }
    function result() {
        inputValue = document.getElementById('num').value;
        $('#yourResult').append('<p>your factorial of ' + inputValue + ' equals to: ' + factor(inputValue)+'</p>');
    }
</script>
</body>
Run Code Online (Sandbox Code Playgroud)