Apakah fungsi peringkat tinggi dalam Javascript

Patricia Arquette
Lepaskan: 2024-10-22 06:21:31
asal
961 orang telah melayarinya

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
Salin selepas log masuk

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]
Salin selepas log masuk
//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]
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:dev.to
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
Artikel terbaru oleh pengarang
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!