Rumah > Artikel > hujung hadapan web > Bagaimana untuk memanggil fungsi yang mengembalikan fungsi lain dalam 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.
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.
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.
let outerFunction = function() { return function() { console.log("Inner function"); } } let innerFunction = outerFunction(); innerFunction(); // "Inner function"
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"
Inner function
atau
outerFunction()(); // "Inner function"
Kedua-duanya akan memberikan hasil yang sama
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
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.
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!