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

时间:2013-06-01 02:28:23

标签: javascript recursion anonymous-function

注意:这主要是理论上的做法。

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

输出结果为undefined。为什么呢?

1 个答案:

答案 0 :(得分:7)

将其拆分:

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

one(); // [1, function() { one(); }]
[1] // function() { one(); }
() // undefined

如果您返回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(); }]