Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kari Berfungsi dengan Berbilang Fungsi Anak Panah dalam JavaScript?

Bagaimanakah Kari Berfungsi dengan Berbilang Fungsi Anak Panah dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-12-21 06:48:12
asal
370 orang telah melayarinya

How Does Currying Work with Multiple Arrow Functions in JavaScript?

Kari dengan Berbilang Fungsi Anak Panah dalam JavaScript

Anda mungkin menemui kod seperti ini dalam aplikasi React:

handleChange = field => e => {
  e.preventDefault();
  /// Do something here
}
Salin selepas log masuk

Sintaks yang membingungkan ini mewakili apa yang dikenali sebagai kari fungsi.

Apa itu Kari?

Kari ialah teknik yang membolehkan sesuatu fungsi ditakrifkan dalam bahagian. Contohnya:

const add = x => y => x + y
Salin selepas log masuk

Ini bersamaan dengan fungsi tradisional:

const add = function (x) {
  return function (y) {
    return x + y
  }
}
Salin selepas log masuk

Memfokuskan pada Nilai Pulangan

Dalam fungsi anak panah, nilai pulangan diwakili sebagai:

const f = someParam => returnValue
Salin selepas log masuk

Oleh itu, fungsi tambah kami mengembalikan fungsi:

const add = x => (y => x + y)
Salin selepas log masuk

Memanggil fungsi:

add(2)(3)  // returns 5
Salin selepas log masuk

Ini berlaku kerana panggilan fungsi luar mengembalikan fungsi dalam.

Memahami pemegangTukar Kod

Memohon ini pada pemegangTukar kod:

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  };
};
Salin selepas log masuk

Oleh kerana fungsi anak panah mengekalkan konteks, ia kelihatan seperti:

handleChange = function(field) {
  return function(e) {
    e.preventDefault()
    // Do something here
  }.bind(this)
}.bind(this)
Salin selepas log masuk

Kod ini mencipta fungsi untuk medan tertentu. Dalam React, ia digunakan untuk menyediakan pendengar untuk pelbagai medan input tanpa menduplikasi kod.

Fungsi Anak Panah Berbilang

Fungsi anak panah berbilang boleh disusun, membenarkan fungsi yang mengejutkan seperti ini:

const $ = x => k =>
  $ (k(x))
Salin selepas log masuk

Fungsi kari ini, dipanggil $ (sebagai pun pada sintaks Lisp), nampaknya menerima bilangan hujah yang sewenang-wenangnya, mengabstrakkan konsep arity.

Atas ialah kandungan terperinci Bagaimanakah Kari Berfungsi dengan Berbilang Fungsi Anak Panah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan