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
Patricia Arquetteasal
2024-12-27 13:45:10292semak imbas

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
}

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

Dalam bentuk kari:

const add = x => y => x + y

Tanpa fungsi anak panah:

const add = function (x) {
  return function (y) {
    return x + y
  }
}

Fokus pada Nilai Pulangan

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

const f = someParam => returnValue

Jadi, dalam fungsi tambah kami, nombor mengembalikan fungsi:

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

Ini bermakna tambah nombor pulangan a fungsi:

add(2) // returns (y => 2 + y)

Memanggil Fungsi Kari

Untuk menggunakan fungsi kari, panggilnya secara berbeza:

add(2)(3)  // returns 5

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
}

Tanpa fungsi anak panah:

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

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)

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

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

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!

Kenyataan:
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