我正在阅读 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
为什么对函数的调用会像这样嘈杂?(Boolean) 是演员表吗?演员表干什么?返回值?还是论点?为什么不是 (Boolean)noisy(0) 如果它的返回值。如果参数是被转换的参数,则为noise((Boolean) 0)。
noisy(Boolean)(0)
这条线发生了什么?f() 在哪里定义?
var val = f(arg);