2017-01-31 12 views
0

私はEloquent JSと高次関数についての章でこのコードの理解に問題があります。 4行目は、ブール論理式がどのようにこのステートメントはどのようにブール値を返します

function noisy (f) { 
    return function (arg) { 
    console.log ("calling with" , arg) ; 
    var val = f(arg); 
    console.log ("called with" ,arg, "- got",val) ; 
    console.log(typeof f(arg)) 
    return val ; 
}; 
} 
noisy (Boolean)(0) ; 
  • このステートメントでは、どのようなfが使用されていますか?
+1

'console.log(f)' – epascarello

答えて

0
  • その内関数の内部、typeof f(arg)typeof Boolean(0)と呼ばれているからです。
  • f0であり、Booleanコンストラクタに渡されます。
0

noisy(f)ここには、が返す関数があります。

function returned(arg) { 
    console.log("calling with", arg); 
    var val = Boolean(arg); 
    console.log("called with", arg, "- got", val); 
    console.log(typeof Boolean(arg)); 
    return val; 
}; 

あなたはその後、それがゼロに渡して、関数を呼び出す返さ:

noisy(Boolean)は関数を返します。あなたがタイプで渡され、そのコンストラクタを呼び出したので

  • fは変数であるブール式

    • 4行目されています

      console.log("calling with", 0); 
      var val = Boolean(0); 
      console.log("called with", 0, "- got", val); 
      console.log(typeof Boolean(0)); 
      

      は、あなたの質問に答えるために:だから、基本的に以下のコードを実行されていますノイズによって返される関数での使用のためにキャプチャされています。

  • +0

    ありがとう、私はそれを感謝してくれてありがとう – Chris

    +0

    それが助けてくれてうれしい。私はいくつかのStackOverflowの評判を得ることができるように答えをマークすることができれば感謝しています。) – SheepNine

    +0

    リマインダのためにありがとう、ありません。 – Chris

    関連する問題