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

JS函数作为返回值的逻辑疑问:匿名函数参数来源解析

关于这段JavaScript代码的逻辑解析

你疑惑的核心点其实很直白,结合闭包特性拆解来看:

  1. checkYears的本质就是那个匿名函数
    当你执行const checkYears = yearToCheck(1912)时,yearToCheck函数会返回它内部定义的function(x, y),所以checkYears就是这个匿名函数的“别名”——换句话说,调用checkYears(参数),就等同于直接调用那个匿名函数并传入参数。

  2. 匿名函数的参数接收逻辑
    你调用checkYears(1900,1913)时,传入的1900会被匿名函数的第一个参数x接收,1913会被第二个参数y接收,这和普通函数调用传参的逻辑完全一致。

  3. 闭包保留year变量
    而匿名函数里用到的year,是它从外层yearToCheck函数中“捕获”并保留下来的固定值1912——哪怕yearToCheck已经执行完毕,这个变量依然会被闭包留存,供匿名函数后续使用。

所以整个流程就是:checkYears作为匿名函数的引用,调用时传的参数直接交给匿名函数的x、y,再结合闭包保留的1912,完成区间判断。

内容的提问来源于stack exchange,提问作者Eduardo Tejeda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:21:50