这是我的代码,我收到错误提示“回调未定义”,我很困惑,即使我已将函数作为参数发送给搜索函数,它仍将其视为未定义。
class Tree{
constructor(){
this.data;
this.left;
this.right;
}
Insert(data)
{
if(this.data)
{
if(this.data<data)
{
if(this.right)
{
this.right.Insert(data)
}
else{
this.right=new Tree();
this.right.Insert(data)
}
}
else{
if(this.left)
{
this.left.Insert(data)
}
else{
this.left=new Tree();
this.left.Insert(data)
}
}
}
else{
this.data=data;
}
}
Display(){
if(this.left)
{
this.left.Display();
}
console.log(this.data);
if(this.right)
{
this.right.Display();
}
}
Search(data,callback){
if(data==this.data)
{
console.log("found")
callback("found")
}
else if(data>this.data)
{
if(this.right)
{
this.right.Search(data);
}
else callback("not found")
}
else if(data<this.data){
if(this.left)
{
this.left.Search(data);
}
else callback("not found")
}
}
}
var k =new Tree();
k.Insert(41);
k.Insert(34);
k.Insert(53);
k.Insert(384);
k.Search(34,function (res){
console.log(res)
});
你们能帮我解决这个问题吗?非常感谢
最佳答案
在search
函数中调用Search
时没有callback
参数
Search(data,callback){
if(data==this.data)
{
console.log("found")
callback("found")
}
else if(data>this.data)
{
if(this.right)
{
this.right.Search(data, callback);
}
else callback("not found")
}
else if(data<this.data){
if(this.left)
{
this.left.Search(data, callback);
}
else callback("not found")
}
}
关于javascript - 我收到错误消息 "TypeError: callback is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44993636/