无法找到包含在匿名函数中的递归函数调用

che*_*lou 4 javascript recursion anonymous-function

注意:这主要是理论实践.

function one() {
    return [1, function() { one(); }];
}
console.log((one()[1])());
Run Code Online (Sandbox Code Playgroud)

输出给出undefined.为什么?

and*_*lrc 7

拆分:

function one() {
    return [1, function() { one(); }];
}
console.log((one()[1])());

one(); // [1, function() { one(); }]
[1] // function() { one(); }
() // undefined
Run Code Online (Sandbox Code Playgroud)

如果你返回one()它将返回数组:

function one() {
    return [1, function() { return one(); }];
}
console.log((one()[1])());

one(); // [1, function() { return one(); }]
[1] // function() { return one(); }
() // [1, function() { return one(); }]
Run Code Online (Sandbox Code Playgroud)

  • 或者把所有这些都放在另一个方面:匿名函数没有显式返回值,因此默认返回`undefined`. (2认同)