这是一本名为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
本章是关于高阶函数的,这段代码是为了展示如何使用改变其他函数的函数。我经历过,试图了解会发生什么,但没有运气。我想了解每一行,特别是他声明变量 val 。
谢谢。
编辑:我认为它是函数 noisy ,它接受参数 f 并返回另一个函数(arg)。为什么他声明 val = f(arg); 这与 false 相等?为什么他用两个参数调用 noisy ?