2017-12-14 16 views
0

function count_changeから関数addを呼び出そうとしていますが、addは関数ではありません。何が間違っていますか?別の関数から関数を呼び出す

var stat = missing_stat(); 
function missing_stat(){ 
    template ="noun verb apples .that is why he is so adj . also noun verb apples but he is so adj . noun verb oranges "; 
    var fields =template.split(' '); 
    for (i=0;i<fields.length;i++) 
    { 
     if(fields[i]=='noun'){ 
      fields[i]= noun_change(); 
     } 
     var add = (function() { 
      var counter = 0; 
      return function() {return counter += 1;} 
     })(); 

     function count_change(){ 
      var count_noun= add(); 
     } 
    } 
} 

答えて

0

あなたがちょうどそれらを削除し、あなたのコーディングスタイルに

var stat = missing_stat(); 
function missing_stat(){ 
    template ="noun verb apples .that is why he is so adj . also noun verb apples but he is so adj . noun verb oranges "; 
    var fields =template.split(' '); 
    for (i=0;i<fields.length;i++) 
    { 
     if(fields[i]=='noun'){ 
      fields[i]= noun_change(); 


     } 
     var add = function() { 
       var counter = 0; 
       return counter += 1; 
     }; 

     function count_change(){ 
      var count_noun= add(); 

     } 
    } 
} 
+0

インデントの一部が私のせいです。しかし、それが以前の様子を見ていたはずです。 –

+0

Uhm ...もっと詳しく調べると、質問に対する私の(今削除された)コメントに間違っていました。これらの括弧は理にかなっていました。なぜなら、 'add'に割り当てられた関数は関数自体を返すからです。 –

0

まずエラーを定義するために次回のためにそのハードを右集計を使用してくださいvar add = (function() {...で余分なブラケットを使用して、私はその内部にそのifと仮定しますcount_changeに電話したかったのですが、noun_changeではありません。

count_changeに電話すると、addはまだ定義されていません。 「クロージャ」を検索します。

あなたはcounterはあなたがadd呼び出すリセット毎回になるだろう、また、この

var stat = missing_stat(); 
function missing_stat(){ 
    template ="noun verb apples .that is why he is so adj . also noun verb apples but he is so adj . noun verb oranges "; 
    var fields =template.split(' '); 
    for (i=0;i<fields.length;i++) 
    { 
     var add = (function() { 
      var counter = 0; 
      return function() {return counter += 1;} 
     })(); 

     if(fields[i]=='noun'){ 
      fields[i]= noun_change(); 
     } 


     function count_change(){ 
      var count_noun= add(); 
     } 
    } 
} 

のように、count_changeへの呼び出しの前にaddの定義を移動することでこれを避けることができますので、私は本当にわからないんだけど何あなたはここでやろうとしていました。

関連する問題