请解释一下这个高阶函数的javascript代码

时间:2015-04-09 22:22:59

标签: javascript functional-programming higher-order-functions

我正在研究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

2 个答案:

答案 0 :(得分:4)

noisy接受任何单参数函数作为其参数。它返回一个调用该函数的新函数,但在调用它之前和之后显示消息。

Boolean只是他们使用的一个示例函数。它将其参数转换为布尔数据类型。

答案 1 :(得分:0)

Boolean是布尔类型的构造函数。它可以是任何功能。