Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk memanggil fungsi yang mengembalikan fungsi lain dalam JavaScript?

Bagaimana untuk memanggil fungsi yang mengembalikan fungsi lain dalam JavaScript?

WBOY
WBOYke hadapan
2023-09-02 21:21:021148semak imbas

如何在 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"

Output

Inner function

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"

Anda juga boleh menggunakan fungsi anak panah dan bukannya fungsi -

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

Output

Inner function

atau

outerFunction()(); // "Inner function"

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

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam