Rumah  >  Artikel  >  hujung hadapan web  >  Apakah fungsi peringkat tinggi dalam Javascript

Apakah fungsi peringkat tinggi dalam Javascript

Patricia Arquette
Patricia Arquetteasal
2024-10-22 06:21:31962semak imbas

What is higher-order function in Javascript

Apakah fungsi peringkat tinggi?

Satu fungsi tertib lebih tinggi ialah fungsi yang sama ada:

  • Mengambil satu atau lebih fungsi sebagai hujah
  • Mengembalikan fungsi sebagai hasilnya

Ia adalah salah satu asas pengaturcaraan berfungsi.

Contoh fungsi tertib tinggi dalam JS:

//map() and reduce()
let nums = [1, 2, 3, 4]
let addOne = nums.map((i) => i+1) // [2,3,4,5]
let combined = nums.reduce((res, cur) => res+=cur, 0) // 10

Mengapa menggunakan fungsi peringkat tinggi?

Memudahkan corak berulang (abstraksi) & Kebolehgunaan Semula

Bayangkan anda sedang bekerja dengan senarai nombor dan perlu melakukan operasi yang berbeza (cth., menggandakan, menduakan atau menambah pemalar). Daripada menulis berbilang gelung serupa, anda boleh mengabstrak gelagat dengan fungsi tertib lebih tinggi.

//normal version
let numbers = [1, 2, 3, 4]; 

const squares = (nums) => {
    let result = [];
    for(let i of nums) {
        result.push(i*i);
    }
    return result;
}

const addThree = (nums) => {
    let result = [];
    for(let i of nums) {
        result.push(i+3);
    }
    return result;
}
squares(numbers) // [1,4,9,16]
addThree(numbers) // [4,5,6,7]
//higher-order function version
let numbers = [1, 2, 3, 4]; 

const applyAll = (func, nums) => {
    let result = [];
    for(let i of nums) {
        result.push(func(i));
    }
    return result;
}

applyAll((i) => i*i, numbers) // [1,4,9,16]
applyAll((i) => i+3, numbers) // [4,5,6,7]

Dengan satu fungsi tertib tinggi generik terpakaiSemua, anda boleh mengendalikan berbilang operasi dan mengelakkan kod berulang.

Membina logik kompleks daripada fungsi kecil (Kebolehkomposisian)

Dengan mengarang fungsi kecil, anda boleh membina tingkah laku yang lebih kompleks. Contohnya, jika anda ingin menapis senarai nombor dahulu untuk mendapatkan nombor genap sahaja, kemudian menggandakannya, kemudian menambah kesemuanya bersama-sama, anda boleh merantai fungsi tertib lebih tinggi.

//you can chain filter -> map -> reduce
let numbers = [1, 2, 3, 4];
let result = numbers
    .filter(i => i%2===0)
    .map(i => i*2)
    .reduce((res, cur) => res+=cur, 0); // 12

Setiap langkah (penapisan, pemetaan, pengurangan) dikendalikan oleh fungsi tertib lebih tinggi, menjadikan proses lebih modular, lebih mudah diselenggara dan boleh diuji secara berasingan.


Itu sahaja! Terima kasih kerana membaca sejauh ini. Sehingga kali seterusnya!

Atas ialah kandungan terperinci Apakah fungsi peringkat tinggi 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