let fn = (a, b, c) => {
console.log(a, b, c)
}
fn1(0, 0, 0) // output: 0 0 0
Saya mahu parameter kedua fn sentiasa dinaikkan 2 setiap kali ia dipanggil
Itu
fn(0, 0, 0) // output: 0 2 0
fn(1, 1, 1) // output: 1 3 1
Pada masa ini saya hanya boleh mencari cara yang sangat jelek untuk menulis rampasan:
fn = (_ => {
const innerFn = fn
const newFn = (a, b, c) => {
innerFn(a, b + 2, c)
}
Object.assign(newFn, innerFn)
return newFn
})()
Adakah kaedah pembungkusan yang lebih baik?
Caranya betul, tapi saya selalu rasa tulisan awak agak janggal... Saya rasa lebih baik lebih direct...
Eh-huh. .
Malah, ia tidak lebih daripada menambah 0, 2, 0 pada parameter masing-masing
Maksudnya, satu lagifungsi separa fnOffset dijana daripada fungsi fn
偏函数
fnOffset把 [0, 2, 0] 这三个参数 分别加到 fn(a, b, c) 上的 a b c 上
更广义的说:
把
[ .... ]
这n
个参数 分别加到fn()
的arguments
的对应位置上用
🎜Tambah tiga parameter [0, 2, 0] pada a b c pada fn(a, b, c) masing-masing 🎜🎜 🎜Dalam erti kata yang lebih luas: 🎜 🎜Tambahkan parameterfn020
n
[ .... ]
padaargumen
yang sepadan denganfn()
Lokasi 🎜 rrreee 🎜fn020
sebagai nama ubah seharusnya lebih elegan = =🎜Apa yang anda huraikan adalah sedikit seperti Proksi ES6, tetapi ini tidak boleh diisi poli dan mungkin tidak sesuai untuk digunakan pada bahagian hadapan.