gpt4 book ai didi

javascript - 理解 Javascript 中的高阶函数

转载 作者:行者123 更新时间:2023-12-03 09:43:19 26 4
gpt4 key购买 nike

我目前正在阅读 Eloquent Javascript 第 5 章。他们给出了以下示例,这让我很困惑。

function greaterThan(n) {
return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true

任何人都可以尽可能简单地将其分解给我。我在回调方面遇到了很大的麻烦。尤其是在遇到这样的情况时。

最佳答案

高阶函数基本上意味着两件事:

  • 函数可以将其他函数作为参数/输入
  • 函数可以返回 功能

  • 这就是高阶函数的含义。
    // this function takes a function as an argument
    function myFunc(anotherFunc) {
    // executes and returns its result as the output which happens to be a function (myFunc)
    return anotherFunc();
    }

    // let's call myFunc with an anonymous function
    myFunc(function() {
    // this returns a function as you see
    return myFunc;
    });

    至于你的例子,它通过返回一个函数来演示高阶函数。它还演示了闭包的概念。

    闭包正在关闭一个作用域变量,在这种情况下是输入参数 n。
    function greaterThan(n) {
    // n is closed over (embedded into and accessible within) the function returned below
    return function(m) { return m > n; };
    }

    // greatherThan10 reference points to the function returned by the greaterThan function
    // with n set to 10
    // Notice how greaterThan10 can reference the n variable and no-one else can
    // this is a closure
    var greaterThan10 = greaterThan(10);

    console.log(greaterThan10(11));
    // → true

    关于javascript - 理解 Javascript 中的高阶函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26131645/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com