首页 > 解决方案 > 理解这个 JS 语法

问题描述

我正在练习 ES6,我有这个代码:

const over = (...fns) => (...args) =>
  fns.map(fn => fn.apply(null, args));

const minMax = over(Math.min, Math.max);

console.log(minMax(1, 2, 3, 4, 5));
console.log(minMax(1, 2, 5, 4, 3));
console.log(minMax(1, 2, 5, -4, 3));

目标是获得作为参数传递的数字之间的最小值和最大值。

我几乎可以理解所有内容,动态非常清楚,除了一个例外,我知道是args指来自 的参数minMax(),但我无法理解代码如何识别它。

我的猜测是:因为我们有两个函数,over()并且minMax(),当被调用时,它们会自动按此顺序读取,这就是为什么代码知道第一个匿名函数引用over()和第二个匿名函数引用minMax()。但这只是一个猜测,我不知道我是否正确。

这里到底发生了什么?

标签: javascriptecmascript-6

解决方案


推荐阅读