Bagaimana untuk memanggil fungsi yang mengembalikan fungsi lain dalam JavaScript?

WBOY
Lepaskan: 2023-09-02 21:21:02
ke hadapan
1112 orang telah melayarinya

如何在 JavaScript 中调用一个返回另一个函数的函数?

Kami akan memanggil fungsi dengan memetik nama fungsi dan menambah kurungan selepasnya. jika Fungsi yang kami panggil mengembalikan fungsi lain (dalam kes kami, ia berfungsi) dan kami perlu menetapkan ke dalam pembolehubah atau panggil dengan segera. Pada masa hadapan, kita perlu memastikan bahawa kita Fahami kelakuan fungsi yang dikembalikan dan cara menggunakannya dalam kod kami. Ini dipanggil fungsi kari.

Fungsi kari

  • Function currying ialah teknik dalam pengaturcaraan berfungsi di mana fungsi diubah menjadi satu siri fungsi, setiap fungsi menerima parameter.

  • Ini membenarkan penggunaan separa hujah fungsi dan memudahkan komposisi fungsi.

  • Ia dinamakan sempena ahli logik Haskell Curry.

  • Dalam JavaScript, fungsi "kari" boleh digunakan untuk kari fungsi yang diberikan.

kaedah

Dalam JavaScript, anda boleh memanggil fungsi yang mengembalikan fungsi lain dengan terlebih dahulu menetapkan fungsi yang dikembalikan kepada pembolehubah dan kemudian memanggilnya menggunakan nama pembolehubah diikuti dengan kurungan.

Contoh

let outerFunction = function() {
   return function() {
      console.log("Inner function");
   }
}
let innerFunction = outerFunction();
innerFunction(); // "Inner function"
Salin selepas log masuk

Output

Inner function
Salin selepas log masuk
Salin selepas log masuk

Anda juga boleh memanggil fungsi dalam serta-merta selepas memanggil fungsi luar dengan menambah kurungan dalam panggilan fungsi luar seperti yang ditunjukkan di bawah -

outerFunction()(); // "Inner function"
Salin selepas log masuk
Salin selepas log masuk

Anda juga boleh menggunakan fungsi anak panah dan bukannya fungsi -

let outerFunction = () => () => console.log("Inner function");
let innerFunction = outerFunction();
innerFunction(); // "Inner function"
Salin selepas log masuk

Output

Inner function
Salin selepas log masuk
Salin selepas log masuk

atau

outerFunction()(); // "Inner function"
Salin selepas log masuk
Salin selepas log masuk

Kedua-duanya akan memberikan hasil yang sama

Kod akhir

Ini ialah contoh memanggil fungsi yang mengembalikan fungsi lain dalam JavaScript -

// A function that returns another function
function createMultiplier(x) {
   return function(y) {
      return x * y;
   };
}

// Call the createMultiplier function and assign the returned function to a variable
let double = createMultiplier(2);

// Use the returned function to perform a calculation
console.log(double(5)); // Output: 10
Salin selepas log masuk

Penerangan

    Fungsi
  • createMultiplier menerima satu parameter x dan mengembalikan fungsi baharu. Fungsi pulangan ini menerima satu hujah y dan mengembalikan hasil darab x dan y.

  • Kami memanggil fungsi createMultiplier dan menghantar nilai 2 sebagai parameter, dan fungsi memberikan fungsi yang dikembalikan kepada dua kali ganda berubah.

  • Kini pembolehubah berganda ialah fungsi yang mengambil hujah y dan mengembalikan x*y (di mana x ialah 2).

  • Kami memanggil double(5), yang akan mengembalikan 2*5 = 10.

Dalam contoh ini, createMultiplier ialah fungsi tertib lebih tinggi kerana ia mengembalikan fungsi. Fungsi yang dikembalikan dipanggil penutupan kerana ia mengingati nilai x dari skop fungsi luar.

Output

10
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk memanggil fungsi yang mengembalikan fungsi lain dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!