【问题标题】:Please explain me this higher-order function javascript code请解释一下这个高阶函数javascript代码
【发布时间】:2015-04-09 22:22:58
【问题描述】:

我正在按照 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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 没有使用new,只是调用了Boolean函数。
      • 对不起,我写的很仓促。取而代之的是 Barmar 的回答。据我所见,noisy() 函数毫无用处。我真正想指出的是,Boolean 是一个构造函数。
      猜你喜欢
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      相关资源
      最近更新 更多