2017-03-27 20 views
0

私はわからない愚かなjavascriptのバグがあります。以下のコードでは、 'CustomPlotV'関数を定義します。それはうまく動作します。それではプロトタイプ関数がありますが、呼び出されません(okFは表示されません)。私は過去に同様のコードを使用していたので、このコンセプトはうまくいくはずです。私はあなたのコード内で、後に割り当てられているメソッドを呼び出しているので、それがあるJavascript:プロトタイプ関数で関数を呼び出すことができません

Plunker code.

 $('#log').text("oka"); //printed fine 
     tensionPlotValence.test(); 

     $('#log').text("okb"); //not printed 



     CustomPlotV.prototype.test = function test() { 
      $('#log').text("okF"); //not printed 

     } 

     function CustomPlotV(jElement, data, options) { 

      this.plot = $.plot(jElement, data, options); 
      this.options = options; 
      this.place = jElement; 
      this.direction = 1; 
      this.crossHairPos = this.plot.getAxes().xaxis.min; 
     } 
+0

間違った順序でコードを使用しています。そのはず。 'CustomPlotV'、 'CustomPlotV.prototype.test'から' tensionPlotValence.test(); ' –

+0

順番を入れ替えましたが効果はありません(Plunker参照) – dorien

+0

コンソールをチェックしてください:' 'jQuery.Deferred exception:tensionPlotValenceが定義されていませんReferenceError:tensionPlotValenceが定義されていない "' $ .get() 'コールの成功ハンドラで' tensionPlotValence'を定義しています – Andreas

答えて

1

...愚かな何か間違ったことしなければなりません。

CustomPlotV.prototype.test = function test() { 
    $('#log').text("okF"); //not printed 
} 

tensionPlotValence.test(); // now call it here 
+0

私はそれを試みたが、動作していないようです: /plnkr.co/edit/OVk3ZDpqHXLn2qf5f3TE?p=preview – dorien

+0

私は欠落を修正した後に働いた});ありがとう。 – dorien

関連する問題