【发布时间】:2014-05-08 07:23:46
【问题描述】:
我正在阅读 Eloquent JavaScript (The new edition),我到达了关于高阶函数的部分,我对以下代码中发生的事情感到困惑。
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)。或者如果参数是被强制转换的参数,则为噪声 ((Boolean) 0)。
noisy(Boolean)(0) -
这一行发生了什么? f() 是在哪里定义的?
var val = f(arg);
【问题讨论】:
标签: javascript function higher-order-functions