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

JS高阶函数参数疑问:实参(3,2,1)如何绑定到箭头函数?

问题解答

咱们一步步拆解代码的执行流程,就能搞懂参数是怎么传递的:

  • 第一步:执行noisy(Math.min)
    调用noisy函数时,Math.min被传给了函数的形参f。noisy内部会返回一个箭头函数:(...args) => {...}。这个箭头函数会通过闭包“记住”外部的f(也就是Math.min)。

  • 第二步:执行(3, 2, 1)
    这其实是调用刚才noisy返回的箭头函数,把3、2、1作为实参传进去。箭头函数的形参...args是JS的剩余参数语法,它会自动把所有传入的实参打包成一个数组,赋值给args变量。这一步是JS函数调用机制自动完成的,不需要你写显式赋值代码,此时args的值就是[3, 2, 1]。

  • 第三步:箭头函数内部执行f(...args)
    这里的f是之前传入的Math.min,而...args是展开运算符,它会把数组args里的元素逐个展开,传给Math.min,相当于执行Math.min(3, 2, 1),最终得到结果1。

简单说:noisy(Math.min)返回一个箭头函数,后面的(3,2,1)就是调用这个箭头函数,JS自动把这些实参打包给箭头函数的...args形参,所以不用写显式赋值语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:55:20