2017-07-09 14 views
1

ここに私のコードがあります。「コールバックは未定義です」というエラーが表示されていて、検索機能にパラメータとして関数を送信しても、それは未定義と考えています。「TypeError:コールバックは関数ではありません」というエラーが表示されています

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

あなたは私にこれを手伝ってもらえますか?あなたは、あなたがするたびにコールバックを送るべきSerachあなたがコールバックを送信しない

else if(data>this.data) 
    { 
     if(this.right) 
     { 
      this.right.Search(data); 
     } 

この部分でパラメータ

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") 
    } 
} 
+0

ソリューションは、本当に 'Callback'、ない' callback'を言っ誤りですか? –

+0

/home/dhananjay/Desktop/Workspace/Trees/tree.js:43 コールバック( "found"); ^ 例外TypeError:コールバックはTree.Search(/ホーム/ dhananjay /デスクトップ/ワークスペースでTree.Search(/home/dhananjay/Desktop/Workspace/Trees/tree.js:54:13) で機能 ではありません/Trees/tree.js:67:27) atオブジェクト。 (/ home/dhananjay/Desktop/Workspace/Trees/Workspace/Trees/tree.js:80:3) (Module._compile(module.js:556:32) ) node_modules/babel-register/lib/node.j s:144:5) @FelixKlingあなたは正しいです。 –

答えて

4

機能searchで事前に感謝あなたはそれを呼び出します。

else if(data>this.data) 
    { 
     if(this.right) 
     { 
      this.right.Search(data, callback); 
     } 
+0

ありがとう、よく働いた –

3

callbackせずに呼び出す

+0

ありがとう、よく働いた –

+0

@ダナンジャヤゴケールあなたを歓迎する。 –

関連する問題