javascript - 我收到错误消息 "TypeError: callback is not a function"

标签 javascript

这是我的代码,我收到错误提示“回调未定义”,我很困惑,即使我已将函数作为参数发送给搜索函数,它仍将其视为未定义。

    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/

相关文章:

javascript - 选项标签值属性的 jQuery 选择器返回 null

javascript - onKeyPress、onKeyUp、onKeyDown有什么区别

javascript - jQuery 轮播 - 任意数量的图像

javascript - 复杂的 javascript 圆锥体计算器无法计算

javascript - jQuery 重定向到源 url

javascript - 如何强制每五分钟重新加载一次网页(仅在事件时)

javascript - JS如何测量FormData对象的大小?

javascript - 使用 Interact.js 进入 Dropzone

javascript - JQuery - 禁用滚轮直到动画完成

javascript - 如何在 jQuery 中将 JSON 格式设置为 HTML5 数据属性