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

请给我解释一下这个高阶函数的javascript代码,javascript,functional-programming,higher-order-functions,Javascript,Functional Programming,Higher Order Functions,我在读一本有说服力的JavaScript书之后学习高阶函数。 我一直无法理解这段代码,为什么“Boolean”作为第一个参数传递 这应该是改变其他函数的函数,我只是不明白它是如何工作的 function noisy(f) { return function(arg) { console.log("calling with", arg); var val = f(arg); console.log("cal

我在读一本有说服力的JavaScript书之后学习高阶函数。 我一直无法理解这段代码,为什么“Boolean”作为第一个参数传递

这应该是改变其他函数的函数,我只是不明白它是如何工作的

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是布尔类型的构造函数。它可以是任何函数。

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

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


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

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


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

它没有使用
new
,它只是调用
布尔
函数。对不起,我写得太匆忙了。以巴尔马的回答为准。就我所见,
noise()
函数是非常无用的。我真正想指出的是,
Boolean
是一个构造函数。它没有使用
new
,它只是调用
Boolean
函数。对不起,我写得很匆忙。取而代之的是巴尔玛的回答。就我所见,
noise()
函数是非常无用的。我真正想指出的是,
Boolean
是一个构造函数。