代码之家  ›  专栏  ›  技术社区  ›  Chaitanya

“return”语句在不返回任何内容的递归函数中有什么用途

  •  1
  • Chaitanya  · 技术社区  · 8 年前

    我正在使用递归函数,它在NodeJS中异步获取一些细节。递归调用此函数以迭代ID数组。

    var x = [1, 2, 3];
    
    function rec_fun(index) {
        if (index < x.length) {
            someAsyncFuncCall(x[index], function(response) {
                rec_fun(++index);
            })
        } else {
            // iterated all elements from 'x'
            someAnotherFunctionCall();
        }
    }
    
    rec_fun(0); // start iteration
    
    function someAnotherFunctionCall() {
        console.log("finished iteraing data. Can proceed to next flow");
    }
    

    如果提供了巨大的数组作为输入,那么我认为javascript将抛出一个错误 RangeError: Maximum call stack size exceeded

    rec_fun 上面显示的示例代码不需要返回任何内容。但当它被递归调用时,添加“return”语句是必需的吗?它会影响性能吗?

    0 回复  |  直到 8 年前