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

Bagaimanakah Fungsi Berbilang Anak Panah Bersarang Berfungsi dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-27 13:45:10
asal
337 orang telah melayarinya

How Do Multiple Nested Arrow Functions Work in JavaScript?

Memahami Berbilang Fungsi Anak Panah dalam JavaScript

Dalam JavaScript, anda mungkin menghadapi kod seperti ini:

  e.preventDefault();
  /// Do something here
}
Salin selepas log masuk

Fungsi Kari

Kod ini menunjukkan karipap fungsi. Fungsi kari ialah fungsi yang mengembalikan fungsi, membolehkan anda menggunakan sebahagian argumen.

Pertimbangkan contoh berikut (tanpa fungsi anak panah):

const add = (x, y) => x + y
add(2, 3) //=> 5
Salin selepas log masuk

Dalam bentuk kari:

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

Tanpa fungsi anak panah:

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

Fokus pada Nilai Pulangan

Fungsi anak panah berkelakuan seperti berikut (memperhatikan nilai pulangan):

const f = someParam => returnValue
Salin selepas log masuk

Jadi, dalam fungsi tambah kami, nombor mengembalikan fungsi:

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

Ini bermakna tambah nombor pulangan a fungsi:

add(2) // returns (y => 2 + y)
Salin selepas log masuk

Memanggil Fungsi Kari

Untuk menggunakan fungsi kari, panggilnya secara berbeza:

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

Ini kerana yang pertama panggilan fungsi mengembalikan fungsi kedua. Hanya panggilan fungsi kedua memberikan hasil sebenar.

Aplikasi kepada Kod Anda

Dalam kod anda:

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

Tanpa fungsi anak panah:

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

Memandangkan fungsi anak panah mengikat ini secara leksikal, ia kelihatan lebih seperti ini:

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

Ini bermakna handleChange mencipta fungsi untuk medan tertentu. Ini adalah teknik React untuk menyediakan pendengar acara untuk setiap input tanpa pendua.

Lebih Banyak Anak Panah

Lebih daripada dua fungsi anak panah boleh disusun:

const three = a => b => c =>
  a + b + c

const four = a => b => c => d =>
  a + b + c + d

three (1) (2) (3) // 6

four (1) (2) (3) (4) // 10
Salin selepas log masuk

Karipap dan Arity

Karipap boleh mengejutkan anda. Di sini, $ ditakrifkan sebagai fungsi kari dengan dua parameter, tetapi anda boleh memberikan sebarang bilangan argumen:

const $ = x => k =>
  $ (k (x))
  
const add = x => y =>
  x + y

const mult = x => y =>
  x * y
  
$ (1)           // 1
  (add (2))     // + 2 = 3
  (mult (6))    // * 6 = 18
  (console.log) // 18
  
$ (7)            // 7
  (add (1))      // + 1 = 8
  (mult (8))     // * 8 = 64
  (mult (2))     // * 2 = 128
  (mult (2))     // * 2 = 256
  (console.log)  // 256
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Fungsi Berbilang Anak Panah Bersarang Berfungsi 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