let fn = (a, b, c) => {
console.log(a, b, c)
}
fn1(0, 0, 0) // output: 0 0 0
Je veux que le deuxième paramètre de fn soit toujours augmenté de 2 à chaque fois qu'il est appelé
C'est
fn(0, 0, 0) // output: 0 2 0
fn(1, 1, 1) // output: 1 3 1
Actuellement, je ne trouve qu'une manière très moche d'écrire un détournement :
fn = (_ => {
const innerFn = fn
const newFn = (a, b, c) => {
innerFn(a, b + 2, c)
}
Object.assign(newFn, innerFn)
return newFn
})()
Existe-t-il une meilleure méthode d'emballage ?
La méthode est correcte, mais j'ai toujours l'impression que ton écriture est un peu maladroite... Je pense qu'il vaut mieux être plus direct...
Euh-huh. .
En fait, ce n'est rien de plus que d'ajouter respectivement 0, 2, 0 aux paramètres
C'est-à-dire qu'une autre
fonction partielle
fnOffset est générée à partir de la fonction fn偏函数
fnOffset把 [0, 2, 0] 这三个参数 分别加到 fn(a, b, c) 上的 a b c 上
更广义的说:
把
[ .... ]
这n
个参数 分别加到fn()
的arguments
的对应位置上用
🎜Ajoutez les trois paramètres [0, 2, 0] à a b c sur fn(a, b, c) respectivement 🎜🎜 🎜Dans un sens plus large : 🎜 🎜Ajoutez les paramètresfn020
n
de[ .... ]
auxarguments
correspondants defn()
Localisation 🎜 rrreee 🎜🎜 🎜🎜 🎜Utiliserfn020
comme nom de variable devrait être plus élégant = =🎜Ce que vous décrivez ressemble un peu au proxy d'ES6, mais il ne peut pas être polyrempli et peut ne pas convenir à une utilisation sur le front-end.