JavaScript 中的函数组合
发布: (2025年12月11日 GMT+8 02:33)
2 min read
原文: Dev.to
Source: Dev.to
Introduction
函数式组合(也称为函数管道)让你可以把简单函数串联起来,从而编写更易读、模块化的代码。
Defining Simple Functions
const double = x => x * 2;
const minusOne = x => x - 1;
const square = x => x * x;
double(x): 乘以 2minusOne(x): 减去 1square(x): 将一个数与自身相乘Math.sqrt: 内置函数,返回平方根
Building the Function Pipeline
将函数引用存入数组——此时并未调用它们。
const functions = [
square,
double,
minusOne,
Math.sqrt,
];
Executing the Pipeline
从初始值开始,按顺序应用每个函数。
let result = 42; // 起始数字
for (const fn of functions) {
result = fn(result);
}
循环的工作方式:
- 取当前的
result。 - 将其传入下一个函数 (
fn)。 - 将输出再存回
result。
这一系列调用等价于:
result = square(42);
result = double(result);
result = minusOne(result);
result = Math.sqrt(result);
Step‑by‑Step Calculation
| Step | Operation | Result |
|---|---|---|
| 1 | square(42) | 1764 |
| 2 | double(1764) | 3528 |
| 3 | minusOne(3528) | 3527 |
| 4 | Math.sqrt(3527) | ≈ 59.380 |
Full Code Example
const double = x => x * 2;
const minusOne = x => x - 1;
const square = x => x * x;
const functions = [
square,
double,
minusOne,
Math.sqrt,
];
let result = 42; // 起始数字
for (const fn of functions) {
result = fn(result);
}
console.log('The answer is ' + result);
// The answer is 59.380217...