gpt4 book ai didi

javascript - "higher-order functions"这个东西在Javascript中是如何工作的

转载 作者:行者123 更新时间:2023-11-28 19:08:36 25 4
gpt4 key购买 nike

来自 Marijn Haverbeke 的Eloquent Javascript一书,有 this example同时引入高阶函数的概念:

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

我不太确定这是如何工作的......可能回答我自己的问题,但这就是我的看法:

  • 首先,在此行中调用 greaterThan(n),将其值赋给 greaterThan10 变量:

    var greaterThan10 = greaterThan(10);
  • 这使得存储为 greaterThan10 的函数看起来像:

    function greaterThan(10) {
    return function(m) { return m > 10; };
    }
  • 然后,当您调用 greaterThan10(11) 时,您正在调用上面的函数,它会转换为:

    function greaterThan(10) {
    return function(11) { return 11 > 10; };
    }

    因此返回 True 作为结果,因为 11 > 10 确实是 true。

有人可以确认我的说法是否正确吗?另外,如果有人可以提供有关 JavaScript 中高阶函数如何工作的更多详细信息和评论,我们将不胜感激。

最佳答案

从理解的 Angular 来看,你是对的,但评估方式略有不同。

var greaterThan10 = greaterThan(10);

这一行不会使存储为 greaterThan10 的函数“看起来像”任何东西 - 它创建一个新函数,将变量 n 传递给它,以便greaterThan10 变成一个看起来像这样的函数

var greaterThan10 = function(m) { return m > 10; };

当你调用它时,你是直接调用这个函数,不再通过原来的函数。

关于javascript - "higher-order functions"这个东西在Javascript中是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176240/

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