Recursion 跨实例的迭代调用是否构成递归?

Recursion 跨实例的迭代调用是否构成递归?,recursion,Recursion,我的问题是遍历节点列表是否满足递归的“函数调用本身”定义。我认为“调用自身”字面上是指函数调用自身,而其他人则说,“自身”可能是第二个(或第三个)节点的相同函数 虽然我不懂JavaScript,但希望这能让大家明白: Class Node { var value = 0; var kids = []; var list = function(){ var rtn = value + "\n"; if (kids.length > 0){

我的问题是遍历节点列表是否满足递归的“函数调用本身”定义。我认为“调用自身”字面上是指函数调用自身,而其他人则说,“自身”可能是第二个(或第三个)节点的相同函数

虽然我不懂JavaScript,但希望这能让大家明白:

Class Node { 
  var value = 0;
  var kids = [];

  var list = function(){
     var rtn = value + "\n";
     if (kids.length > 0){
        for (var i=0; i<kids.length; i++){
           rtn += kids[i].list();
        }
     }
     return rtn;
   };
}
类节点{
var值=0;
var=[];
var list=函数(){
var rtn=value+“\n”;
如果(kids.length>0){

对于(var i=0;i来说,这无疑是递归。假设您编写函数的方式是将节点作为参数,而不是节点的方法。在这种情况下,它将使用不同的参数调用自己。如果您正确查看它,它所附加的节点只是一组不同的参数(尽管是不成文的)调用相同的函数。该函数仍在调用自身

此外,递归并不严格限于直接调用自身的函数。您可以编写一个函数
a()
,它调用另一个函数
b()
,然后再次调用
a()
a()
仍然在
b()
的帮助下调用自己