2017-09-17 10 views
-5

Javascriptのリターンは

function fromTo(x,y){ 
 
    return function(){ 
 
    \t if(x < y){ 
 
\t \t  return x++; 
 
\t  } 
 
} 
 

 
function element(arr,fun){ 
 
    return function(){ 
 
     //this is wrong 
 
\t  return arr[fun()]; 
 

 
     //this is correct 
 
     var yy = fun(); 
 
     return arr[yy]; 
 
    } 
 
} 
 

 
//Testing of javascript below; 
 

 
var e = element(['a','b','c','d'],fromTo(1,3)); 
 
e(); 
 
e(); 
 
e();

は、なぜ私はARR [楽しさを()]を返すことができません。

代わりに、私は

するvar YY =楽しい(..のような変数を宣言すると、関数の値を格納する必要があります)。 arr [yy]を返します。

+2

エラーは何ですか?なぜあなたはそれを最初の方法で書くことができないのですか? – Carcigenicate

+0

最初の関数の中カッコを数えます。これは、コメント行とは関係がないようです。 – Carcigenicate

答えて

0

返された関数の関数定義をfromToから終了しませんでした。

function fromTo(x,y){ 
 
    return function(){ 
 
    \t if(x < y){ 
 
\t \t  return x++; 
 
\t  } 
 
    } 
 
} 
 

 
function element(arr,fun){ 
 
    return function(){ 
 
\t  return arr[fun()]; 
 
    } 
 
}