如何在JavaScript中部分应用函数?
部分应用是一种技术,用于将一些参数固定到一个函数中,从而产生另一个参数更少的函数。这在您想通过填充现有函数的一些参数来创建一个新函数的情况下特别有用。
根据您想要部分应用的函数,您可以选择在函数之前或之后添加参数。这两种技术都非常相似。
在函数之前添加参数
为了通过在函数之前添加参数来部分应用函数,您可以使用扩展运算符(...
)将partials
添加到fn
的参数列表中。只需在提供的任何其他参数之前传递partials
即可。
const partial = (fn, ...partials) => (...args) => fn(...partials, ...args);
const greet = (greeting, name) => greeting + ' ' + name + '!';
const greetHello = partial(greet, 'Hello');
greetHello('John'); // 'Hello John!'
在函数之后添加参数
类似地,您可以使用扩展运算符(...
)将参数附加到函数中来部分应用函数。您只需要在提供的任何其他参数之后将它们传递给fn
即可。
const partialRight = (fn, ...partials) => (...args) => fn(...args, ...partials);
```javascript
const greet = (greeting, name) => greeting + ' ' + name + '!';
const greetJohn = partialRight(greet, 'John');
greetJohn('Hello'); // 'Hello John!'
const greet = (greeting, name) => greeting + ' ' + name + '!';
const greetJohn = partialRight(greet, 'John');
greetJohn('Hello'); // 'Hello John!'