Javascript 返回后,该方法再次调用它自己是谁?

Javascript 返回后,该方法再次调用它自己是谁?,javascript,recursion,depth-first-search,Javascript,Recursion,Depth First Search,在最后一个方法dfs()中,节点将为“1”后,两个if语句将不会进入,直到返回语句没有任何行再次调用该方法!!!但它又称之为自我!!! 那是谁来的 我用的是JS 以下是联机编译器的代码: 类节点{ 构造函数(值){ this.left=null; this.right=null; 这个值=值; } } 类二进制搜索树{ 构造函数(){ this.root=null; } 插入(值){ const newNode=新节点(值); if(this.root==null){ this.root=ne

在最后一个方法dfs()中,节点将为“1”后,两个if语句将不会进入,直到返回语句没有任何行再次调用该方法!!!但它又称之为自我!!! 那是谁来的

我用的是JS

以下是联机编译器的代码:

类节点{
构造函数(值){
this.left=null;
this.right=null;
这个值=值;
}
}
类二进制搜索树{
构造函数(){
this.root=null;
}
插入(值){
const newNode=新节点(值);
if(this.root==null){
this.root=newNode;
}否则{
让currentNode=this.root;
while(true){
if(值log(dfs(tree.root,[])
这称为
递归
:当它到达节点1时,它不会再次调用自己。您认为它有什么作用?对dfs的唯一调用是脚本末尾的一个调用和脚本中的两个调用。要理解这个递归函数是如何工作的,最好是在IDE和/或浏览器中内置的调试器中逐步完成它。一定要注意调用堆栈。请注意,
dfs
可能会调用自身(递归),该调用可能会再次调用自身(更多递归),等等,可能会有几个深层调用,这可能会让您感到困惑。