Kari ialah teknik pengaturcaraan berfungsi yang digunakan dalam JavaScript di mana fungsi yang mengambil berbilang argumen diubah menjadi urutan fungsi, masing-masing menerima satu argumen. Ini membolehkan anda menggunakan sebahagian hujah, memberikan cara yang lebih fleksibel untuk bekerja dengan fungsi.
Kari ialah proses mengubah fungsi yang mengambil berbilang argumen menjadi satu siri fungsi yang setiap satu mengambil satu argumen. Fungsi pertama akan mengambil hujah pertama, mengembalikan fungsi baharu yang mengambil hujah kedua dan seterusnya, sehingga semua hujah telah disediakan.
Contoh asas kari boleh digambarkan seperti berikut:
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
Dalam contoh di atas:
Kari adalah paling berguna apabila anda mempunyai fungsi yang memerlukan berbilang hujah dan anda ingin memecahkannya kepada kepingan yang lebih kecil dan boleh digunakan semula. Berikut ialah contoh karipap dengan pelbagai hujah:
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
Dalam kes ini:
Anda boleh melaksanakan kari secara manual dengan mencipta fungsi yang mengambil beberapa argumen dan mengembalikan fungsi yang mengumpul argumen tersebut.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
Dalam contoh di atas:
Kari membolehkan anda mencipta lebih banyak fungsi yang boleh digunakan semula dan boleh digubah. Ia boleh memudahkan kod dalam beberapa senario dan menjadikannya lebih mudah untuk berfungsi dengan fungsi yang berkongsi hujah biasa.
Aplikasi Fungsi Separa: Currying mendayakan aplikasi separa fungsi, bermakna anda boleh mencipta fungsi khusus dengan membetulkan beberapa hujah dan membiarkan yang lain disediakan kemudian.
Komposisi Fungsi: Anda boleh menggabungkan fungsi kari untuk membina operasi yang lebih kompleks tanpa perlu mengulangi kod.
Kebolehbacaan yang Dipertingkatkan: Currying menjelaskan hujah yang diperlukan oleh fungsi dan membolehkan kod yang lebih bersih dan ringkas.
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
Di sini, multiplyBy10 ialah fungsi khusus yang mempunyai hujah pertama ditetapkan kepada 10. Ini boleh digunakan semula di beberapa tempat.
Andaikan anda membuat satu siri permintaan API dengan parameter biasa. Karipap boleh digunakan untuk memudahkan proses ini.
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
Semasa kari mengubah fungsi menjadi satu siri fungsi unari, aplikasi separa ialah proses membetulkan beberapa argumen fungsi dan mengembalikan fungsi baharu yang menerima argumen yang tinggal. Karipap adalah salah satu cara untuk mencapai sapuan separa.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
Di sini, kami menggunakan sebahagian "Hello" pada fungsi salam menggunakan bind().
Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun tindanan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.
Atas ialah kandungan terperinci Menguasai Kari dalam JavaScript: Tingkatkan Kebolehgunaan Semula dan Fleksibiliti Kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!