javascript - 找不到包裹在匿名函数中的递归函数调用

标签 javascript recursion anonymous-function

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

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

输出给出undefined。为什么?

最佳答案

拆分:

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(); }]

关于javascript - 找不到包裹在匿名函数中的递归函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868510/

相关文章:

matlab - 在matlab中传递和保存匿名函数

javascript - Marionette.js 集合在 Collection View 中未定义

javascript - 隐藏或显示元素的 JS 函数

javascript - 组件初始化无限循环 - Angular 2 JSPM

java - 递归函数——保存ArrayList Java

algorithm - 如何仅使用循环来执行不特定数量的嵌套循环

javascript - 使用 vue 的多个路由器

java - Java中使用递归方法的密码哈希链

jquery - 在 Javascript/jQuery 中将匿名函数传递给自定义事件触发器

angularjs - 我可以将匿名函数或代码作为指令中的属性吗?