私はJSのダグラス・クロークフォーズの講義に従っています。彼の演習の1つは、 "1つの引数をとり、引数を返す関数を返す関数を書く"ことです。次の質問は、 "2つの呼び出しから追加する関数を書く"です。なぜconsole.logは値の代わりに関数を貼り付けますか?
私は両方に答えを得ました。私が得意ではないのは、なぜコンソールにポストしないのですか、そしてもう一方はコンソールにポストしないということです。ここに私が意味するものがあります。私はこれに変更した場合、それはコンソールに4を投稿しますしかし
function(){
return x;
}
(:
function retFunc(x){
return function(){
return x;
};
}
console.log(retFunc(4));
この記事は、コンソールに次の:これは最初の質問に対する私の答えです私が望んでいた):
var idf = retFunc(4);
console.log(idf());
さて、これは2番目の質問に私の答えです:
function addf(x){
return function(y){
return x+y;
};
}
console.log(addf(3)(4));
これは動作し、コンソールに7を吐き出します。私の質問は、最初のものがなぜ機能しないのでしょうか?そして、これはしますか?両方とも別の関数を返す関数で、最終的に値を返します。
関数を返すので、コードを貼り付けて実行します。 – Bhavik