You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于《Eloquent JavaScript》中高阶函数变量m、n赋值的技术咨询

理解JavaScript中的高阶函数与闭包:greaterThan示例解析

我们一步一步拆解这段代码的执行逻辑,搞懂m和n的赋值:

  1. 定义高阶函数greaterThan

    function greaterThan(n) {
      return m => m > n;
    }
    

    这是一个高阶函数——它的返回值是另一个函数。这里的n是外层函数的参数,当你调用greaterThan时,这个参数会被赋值,并且会被返回的箭头函数“记住”(这就是闭包的特性)。

  2. 创建greaterThan10函数

    let greaterThan10 = greaterThan(10);
    

    调用greaterThan(10)时,n被赋值为10,函数返回箭头函数m => m > 10(因为闭包保留了n=10)。此时greaterThan10就是这个箭头函数,它的逻辑已经固定为“判断输入值是否大于10”。

  3. 调用greaterThan10并输出结果

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

    调用greaterThan10(11)时,箭头函数的参数m被赋值为11,然后执行比较11 > 10,结果为true,所以控制台输出true。如果传入9,9 > 10不成立,就会返回false。

总结变量赋值逻辑:

  • n是外层greaterThan函数的参数,在调用greaterThan(具体数值)时被赋值,这个值会通过闭包被返回的箭头函数永久保留。
  • m是返回的箭头函数的参数,在调用greaterThan10(具体数值)时被赋值,用于和保留的n做大小比较。

内容的提问来源于stack exchange,提问作者Woody 1470

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:20:42