相关疑难解决方法(0)

Javascript中的高阶函数

我正在阅读Eloquent JavaScript(新版本),并且我在更高阶函数上达成了一部分,我对以下代码中发生的事情感到困惑.

function noisy(f) {
  return function(arg) {
    console.log("calling with", arg);
    var val = f(arg);
    console.log("called with", arg, "- got", val);
    return val;
  };
}
noisy(Boolean)(0);
// ? calling with 0
// ? called with 0 - got false
Run Code Online (Sandbox Code Playgroud)
  1. 为什么这个函数的调用会像这样嘈杂?(布尔)是演员吗?为什么演员?返回值?还是论点?为什么不(布尔值)嘈杂(0)如果它的返回值.或者噪声((布尔值)0)如果参数是被转换的参数.

    noisy(Boolean)(0)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这一行发生了什么?f()甚至定义在哪里?

    var val = f(arg);
    
    Run Code Online (Sandbox Code Playgroud)

javascript function higher-order-functions

18
推荐指数
3
解决办法
2646
查看次数